我尝试使用Javascript创建一个弹出管理器,其想法是只显示一次ajax弹出窗口。出于某种原因,弹出窗口不止一次出现并随机出现。我想知道我的代码是否有问题:
function SetCookie(name, value, days) {
var expire = new Date ();
expire.setTime (expire.getTime() + (24 * 60 * 60 * 1000) * days);
document.cookie = name + "=" + escape(value) + "; expires=" +expire.toGMTString();
}
function GetCookie(name) {
var startIndex = document.cookie.indexOf(name);
if (startIndex != -1) {
var endIndex = document.cookie.indexOf(";", startIndex);
if (endIndex == -1) endIndex = document.cookie.length;
return unescape(document.cookie.substring(startIndex+name.length+1, endIndex));
}
else {
return null;
}
}
function DeleteCookie(name) {
var expire = new Date ();
expire.setTime (expire.getTime() - (24 * 60 * 60 * 1000));
document.cookie = name + "=; expires=" + expire.toGMTString();
}
function Pop() {
var cookie = GetCookie("popup");
if(cookie==null) {
SetCookie("popup",1,300);
}
else {
if(cookie==1) {
new Ajx.Dialog();
SetCookie("popup",2,300);
return false;
}
else {
return false;
}
}
}
window.onload = Pop;
答案 0 :(得分:1)
好的,发生的事情就是这样:
function Pop() {
var cookie = GetCookie("popup");
if(cookie==null) {
SetCookie("popup",1,300);
}
else {
if(cookie==1) {
new Ajx.Dialog();
SetCookie("popup",2,300);
return false;
}
else {
return false;
}
}
}
1
,pop
功能退出。1
。调用Ajx.Dialog
,Cookie设置为2
,pop
函数返回false。2
。 pop
函数返回false。这是你的意图吗?
<强>更新强>
我不确定你想要发生什么,但如果你想在第一次访问时弹出一次弹出窗口,请使用以下内容:
function Pop() {
var cookie = GetCookie("popup");
if(cookie != 1) {
new Ajx.Dialog();
SetCookie("popup", 1, 300);
}
}