为每个选项卡单独创建 cookie

Creating cookie for each tab seperatly

本文关键字:单独 创建 cookie 选项      更新时间:2023-09-26

我做了一个像谷歌一样的网格来显示图像,并在向下滚动时加载它。在历史记录返回单击我想再次显示加载的图像。这就是为什么,每次向下滚动时,我都存储了上次加载的页面编号。在饼干中。但是当我在同一浏览器的两个选项卡中加载相同的网格页面时会出现一个问题。有没有办法为每个选项卡分别创建cookie。

我使用以下代码来创建和擦除 cookie。

function createCookie(name,value,days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        //var text = document.getElementsByTagName("title")[0].innerHTML;
        document.cookie = name+"="+value+expires+"; path=/";
    }
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
function eraseCookie(name) {
    createCookie(name,"",-1);
}

由于 Cookie 是"域"范围的,因此它们不是特定于选项卡或窗口的。

另外,听起来你要找的是"pushState"——它是HTML5的一部分。一些有用的资源:

-http://diveintohtml5.info/history.html

-https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history

这里还有一个多滤器:

-https://github.com/browserstate/history.js/

希望这有帮助!