我有一个.swf,我们在主页上每次访问时弹出一次,然后消失。为此,我使用
<script type="text/javascript">
function popUp(url) { a bunch of java add flash stuff}
function testCookie() {
if (document.cookie.indexOf("popupOnceValue=false") > -1) {
document.cookie = "popupOnceValue=true;";
return true;
} else {
return false;
}
}
function popupOnce() {
if (document.cookie.indexOf("popupOnceValue") > -1) {
if (testCookie()) {
popUp("");
}
} else {
document.cookie = "popupOnceValue=false;";
if (testCookie()) {
popUp("wefinance2.swf");
}
}
}
function init() {
popupOnce();
}
window.onload = init;
</script>
这很棒。但是我确实尝试过每一个变量组合,以便我可以在另一个页面上执行完全相同类型的弹出...但是因为cookie已经被识别,所以它不会弹出(即使它是一个不同的.swf)所以基本上我问我应该改变什么才能能够使用相同的弹出代码两次(popUP,testCookie,popupOnce)? AGH!
让自己疯狂!
答案 0 :(得分:0)
您需要将Cookie名称保持为页面URL的唯一名称。您可以通过对每个页面的cookie名称进行硬编码或自动生成cookie名称来完成此操作。后者如下图所示。
// Generate a cookie name based on the current URL.
function getCookieName() {
return 'popup_' + encodeURIComponent(window.location.href);
}
function testCookie() {
// Find the cookie name for the current page.
var cookieName = getCookieName();
if (document.cookie.indexOf(cookieName) > -1) {
document.cookie = cookieName + "=true;";
return true;
} else {
return false;
}
}
function popupOnce() {
// Find the cookie name for the current page.
var cookieName = getCookieName();
if (document.cookie.indexOf(cookieName) > -1) {
if (testCookie()) {
popUp("");
}
} else {
document.cookie = cookieName + "=false;";
if (testCookie()) {
popUp("wefinance2.swf");
}
}
}