每个浏览器会话cookie一次

时间:2014-04-01 19:12:37

标签: javascript

我有这个弹出代码,一旦用户关闭浏览器窗口就会激活。问题是我在我的网站上有图片所以每次冲浪者点击图片时,就好像他被带离网站并弹出窗口。

我想让这个弹出窗口每个浏览器会话只显示一次。

var sync = true;
window.onbeforeunload = doSync;

function doSync() {
if (sync == true) {
window.open('myurl', '_blank');
}
else {
return;
}
}

那么......我应该用什么代码来制作每个浏览器一次的会话cookie?

提前致谢!

1 个答案:

答案 0 :(得分:1)

Cookie用于存储您希望每次 REQUEST 发送到服务器的数据,因此根本不使用Cookie,请使用sessionStorage

var sync = true;
window.onbeforeunload = doSync;

function doSync() {
    if (sync && !window.sessionStorage.getItem('popupShown')) {
        window.sessionStorage.setItem('popupShown', 1);
        window.open('myurl', '_blank');
    }
}

其中 popupShown sessionStorage 中的标志,指明它之前发生过。