27. marts 2004 - 12:08Der er
57 kommentarer og 1 løsning
popup eller lign når besøgende forlader sitet
Et site ønsker at høre de besøgendes mening om design, brugervenlighed osv. Det skal ske via fx. et popup-vindue hvor de besøgende inviteres til at deltage i den lille undersøgelse.
Det er jo nok ikke så smart at der kommer en popup allerede ved indgang på siden (de har jo ikke set noget endnu... og skal ikke på dette tidspunkt generes med et popup)
Derfor måske bedre at der kommer et popup når den besøgende forlader sitet (men det er jo svært at vide hvilken side de er på når de er færdige med at kigge rundt).
Er meget bevidst om at popup måske ikke er optimalt pga. irritationsmomentet samt at nogen bruger popup-stoppere - men kan ikke selv komme på en anden idé til at få så mange som muligt til at besvare spørgsmålene).
Siderne er i HTML, PHP og lidt JavaScript.
Hvorledes bør dette løses ? Jeg tænker endvidere på situationen hvor en besøgende har åbnet flere vinduer og måske riskere at få flere popups når disse lukkes.... - skal der noget Cookie med?
Point er sat 50 fra en start - og kan selvf. øges i takt med kompleksitet
Jeg står og snakker med en kedsommelig fyr. Idet jeg prøver at dreje mig og komme væk tager han fat og holder mig så jeg er mødt til at blive. og høre videre på hans snak.
Hvad synes du om den slags fyre ? På internettet risikerer du ikke en lige højre, men det betyde ikke at du ikke kan fortjene den.
Det kan god være dine spørgsmål er vigtige for dig; men hvis du vil have dem besvaret er det op til dig at gøre dem vigtige for dine besøgende. Du kunne fx gøre din side så god at de ønsker at takke dig, så er det nok at bede dem klikke på spørgeskema linket. Det er ikke ligefrem nemt, men synes du egentlig at du har krav på at det skal være nemt?
Cookien er sådan set en okay idé, og i første omgang kan du bruge den til at registrere, hvilket tidspunkt folk er kommet ind på, så du aldrig overvejer at stille dem spørgsmål, før de har brugt et stykke tid på siden !-)
Så kan du jo lave alle interne links med en parameter, som forhindrer spørgsmåls-boksen, så den ikke kommer, når de navigerer internt på sitet ...
-- og den sidste er, at du kan lave din 'popup' som en flydende layer (<div style="position:absolute">) med en form i, for så kan folk selv vælge at overse den !o]
-- og jeg har ikke selv pillet direkte i en sådan en før !-)
-- Hvis dine brugere bruger IE har den en onbeforeunload-event, som kan benyttes, men ellers kan onunload benyttes, men den er ikke så sikker, fordi handlingen afsluttes, når vinduet er lukket ...
-- men onload kan du checke, om der er sat en cookie med f.eks. værdien start (som du så har sat til et tidspunkt), hvis den ikke er der, skal du så sætte den, når folk så har svaret, kan du sætte den til om rigtig lang tid !-)
Du skal så også sætte en parameter onload, feks.
<script type="text/javascript"> var pop=true; </script>
Dette har jeg heller ikke rodet med det før - men mon ikke det kunne fixes gennem lidt trial-and-error ;o|
ja, de besøgende bruger reelt kun IE (højeste alternative bruser - Mozilla - ligger på 0,44% af alle hits). Dermed sagt at man godt kan rette den mod dem som bruger IE, uden at det vil have nævneværdig indvirkning det repræsentative udsnit.
Men jeg kan ikke helt gennemskue ovenstående "var pop=true" og så deen følgende "pop-false"
function spoergeSkema(){ if(pop)return; document.getElementById('skema').style.display='block'; event.returnValue="Vi vil gerne have, at du besvarer nogle spørgsmål\nom dette site, før du forlader det.\n\nHvis du vil medvirke, skal du trykke på fortryd og udfylde spørgeskemaet.\n\nVi takker på forhånd for ulejligheden!"; } </script>
hhmm.. det driller mig (loader ikke) ; hvis den ved exit blot skal åbne et lille popup (indeholdende lidt tekst + et link) : kan du hjælpe lidt med det..?
En cookie kan kun bruges til at undersøge, hvad der er sket, så det du kan, er at lade popup'en undersøge, om brugeren har brugt tid nok til at besvare, spørge ham om han vil besvare, og forhindre ham i at blive spurgt igen ...
-- du kan ikke på nogen måde få at vide, om hvor han er på vej hen, uden at alle interne links disabler spørgsmålet ved at sætte en variabel, som kan aflæses før der evt. åbnes en popup ...
Jeg har indsat : <body onunload="window.open(pop.htm','popup','width=300,height=200,status=0');"> i to ellers tomme dokumenter kaldet "popup.htm" & "popup2.htm" for at teste det...
undre mig lidt over: 1. Hvis jeg refresher vinduet så kommer popupvinduet "pop.htm" frem. 2. Hvis jeg lukker "popup.htm" & "popup2.htm" så kommer der kun 1 popup frem (men det jo dejligt!)
Åbn begge to, luk det vindue uden linket og tryk på linket, e bueno, du har nu google i popup-vinduet, og hvis du så lukker dokumentet har du pop.htm !-)
-- og så er det vel en tavetosse, at der mangler en pling i den onunload du har skrevet ...
Den skal åbne et externt link og med dette virker det som om at popup'et lukker men kommer frem igen <a href="#" onclick="opener.location.href='http://domain.dk/sporgeskema.htm';self.close();">Til spørgeskema</a>
takker ! nu virker det øjensynligt fint - vil lige teste videre for at finde evt. uhensigtsmæssigheder. Smid lige et svar i mellemtiden ;o) ; du er sgu hård til det her - og jeg lærer det langsomt *S*
Der er jo ikke så meget at forstå, og så længe det virker, er det vel egentlig også ligegyldigt, om man har forstået det fuldstændigt !-)
Men makeLinks tager fat i alle links, eksterne skal jo starte med http, de springes over, på de resterende erstattes onclick-funktionen af en simpel funktion, som sætter luk=false, og altså ikke udløser popuppen !o]
Den er selvfølgelig ikke brugbar, hvis du har andet i onclick-events, men så er den da et meget godt eksempel ...
hmm.. men "luk" skal jo blive true, efter at man klikke på et "#" link.. eller hvad ?
Er det her korrekt? 1) siden loades -> JS:luk = true + makelinks() udføres (tilføjes "onclick=luk=false" til <A>-tags 2) man klikker på "bookmark" som !.match("http") + .match("#") -> luk=false
Men, hvad hvis man så klikker på et href="http://..."? "luk" er jo "false".. eller hvad?
hmm.. det er stadig uændret med popup ved refresh eller navigering til en anden side på sitet. Ovenstående JavaScript er includeret på alle sider på sitet. (og har lige disabled bookmark-funktion for at se om den drillede mig)
Alle links gennemgås, og hvis deres hyperreference hverken indeholder http først eller er lig "#" sættes en onclick-funktion, som sætter luk til false ...
Når der så klikkes på et link, vil der ske:
-- Hvis det er eksternt står luk til true, så popup'en aktiveres ...
-- Hvis det er internt link, vil luk sættes til false og forhindre popup'en ...
-- Hvis linket ikke medfører unload eller reload af siden (f.eks. bookmark-tingen) vil onunload ikke blive udført !-)
Du har inkluderet scriptet to gange, så kører det ikke, da browseren ikke ved hvilken udgave den skal foretrække !-)
Script og body-tag må kun forekomme een gang, når du laver den færdige html-kode, så kun i den grundlæggende kode skal det være, i alle andre includes _må_ det ikke være !o]
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.