每个浏览器会话 cookie 一次

Once per browser session cookie

本文关键字:cookie 一次 会话 浏览器      更新时间:2023-09-26

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

我想使此弹出窗口在每个浏览器会话中仅显示一次。

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

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

提前感谢!

Cookie 用于存储您希望在每个请求中发送到服务器的数据,因此根本不要使用 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');
    }
}

其中弹出显示会话存储中的标志,指示它以前发生过。