Hallo allen,

Ik heb het volgende probleem:
Voor een bepaalde site wil ik een popup venster maken. De bezoekers hebben 33% kans dat deze popup naar voren komt dmv een random waarde (zie script).

Alles gaat goed, alleen als een bezoeker een popupblokmelding krijgt en hij staat deze popup toe, dan wordt de randomwaarde opnieuw ingesteld (en dat moet dus niet). Dit heeft tot gevolg dat de bezoeker de popup toestaat en dat deze popup (door die randomwaarde) alsnog niet te voorschijn komt.

Misschien wordt het met het script duidelijker:

<?php
function startEnquete(){
var randomnumber = Math.floor(Math.random() * 3);
var validnumber = 2;

if (randomnumber == validnumber){
//IF COOKIE DOES NOT EXIST
w = window.open('http://www.blaat.nl/enquete.php?lang='; + lang, 'main', 'top=0,left=0,width=750,height=525,locat
ion=0,status=0,menubar=0,directories=0,t
oolbar=0,resizable=0,scrollbars=1');
w.focus();
}
}
?>

Dus hoe kan ik ervoor zorgen dat deze randomcheck wordt gedeactiveerd als men het popje toestaat? Of zijn er andere manieren?

Alvast bedankt
Heeft niemand een ideetje?
Kijken of de pagina binnen een aantal seconden wordt gerefreshed, als dit het geval is de pop-up weergeven. D.m.v ip ofzo. Geen idee hoe het anders kan.
Je hebt me in ieder geval een idee gegeven. Ik ga daar mee aan de slag.

Heeft niemand dit probleem ooit eerder gehad?
Zet random getal in sessie, laten opvragen... als er dus niks gebeurd na 10 seconde ofzo refreshen (automatisch).
Bedankt voor je reactie.

Helaas kan je sessie niet met javascript gebruiken. Daar heb je php voor nodig. Er mag geen php aan te pas komen, het is namelijk een .js bestand.

Graag zou ik de randomwaarde bij de eerste keer willen bewaren, zodat bij het refreshen deze niet meer veranderd. Is daar zonder gebruik van sessie ook een mogelijkheid voor in javascript?
Voor degene die het willen weten. Het is gelukt. Ik heb het door middel van een extra cookie opgelost.

Dus
<?php
function startEnquete(){
var randomnumber = Math.floor(Math.random() * 3);
var validnumber = 2;

var existRand = readCookie(cookieRandName);

if (randomnumber == validnumber || existRand){
if (!existRand)
createCookie(cookieRandName, cookieValue, cookieExpires);
else
createCookie(cookieRandName, cookieValue, '31-12-2005');

//IF COOKIE DOES NOT EXIST
w = window.open('http://www.blaat.nl/enquete.php?lang='; + lang, 'main', 'top=0,left=0,width=750,height=525,locat
ion=0,status=0,menubar=0,directories=0,t
oolbar=0,resizable=0,scrollbars=1');
w.focus();
}
}
?>

(dit is niet de hele code, alleen het relevante)

Het komt erop neer dat hij een cookie plaatst als de random waarde overeenkomt met de validwaarde. Als er gerefreshed wordt en cookie bestaat, dan laat hij hem ook toe.

Bedankt Niek en Kalle voor jullie reacties.

Reageren