Bonjour,
je souhaite que les visiteurs qui arrive pour le première fois sur mon site voient un calque en dhtml type pop-up mais inclue dans la page, les invitant à s'inscrire à la newsletter.
j'ai donc mixer deux scripts java car je n'ai pas les compétences pour le développer moi-meme.
le premier script ouvre une popup classique si le visiteur n'est pas venu depuis X jours.
voici le code :
<SCRIPT LANGUAGE="JavaScript">
var nbJour = 1;
// NOMBRE DE JOUR OU LE COOKIE DOIT RESTER
var page = "script.php";
//ADRESSE DE LA PAGE DE VOTRE POP-UP
var windowProp = "width=500,height=200,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=yes";
//CI-DESSUS LES DIMENSIONS DE VOTRE POP-UP
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var exp = new Date();
exp.setTime(exp.getTime() + (nbJour*24*60*60*1000));
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function verifNbOuverture() {
var cpt = GetCookie('cpt');
if (cpt == null) {
cpt=1;
SetCookie('cpt', cpt, exp);
window.open(page, "", windowProp);
}
else {
cpt++;
SetCookie('cpt', cpt, exp);
}
}
verifNbOuverture();
</script>
ce script fonctionne sur mon site quand je ne le modifie pas (c'est donc moi qui fais une erreur ;-))
le second script, je l'ai trouvé ici :
http://www.dynamicdrive.com/dynamicindex8/dhtmlwindow/dhtmlmodal.htm
ce script ouvre une fenêtre en calque...
pour mixer les deux j'ai fait les modifs suivante dans le premier script :
ajout de :
<script type="text/javascript" src="http://www.ateliermagique.com/popin/windowfiles/dhtmlwindow.js"></script>
remplacement de :
window.open(page, "", windowProp);
par :
var newsletter=dhtmlwindow.open("Inscription_Newsletter", "iframe", "http://www.ateliermagique.com/newsletter/inscription.php", "#1: Google Web site", "width=590px,height=350px,resize=1,scrolling=1,center=1", "recal")
newsletter.onclose=function(){ //Run custom code when window is being closed (return false to cancel action):
return window.confirm("Close window 1?")
et là, je n'ai pas d'erreur mais rien ne se passe.
j'ai pourtant effacé le cookie CPT déposé. ce qui est étonnant, c'est que non seulement la fenêtre ne s'ouvre pas mais le cookie n'est plus créé, comme si mes modifications rendait le test if (cpt == null) VRAI.
je suis désolé pour ce message aussi long mais je souhaitais etre le plus clair possible.
une ame charitable peut-elle me sortir de mon pétrin ??? ;-)
merci