为每个选项卡单独创建cookie

问题描述 投票:0回答:2

我制作了一个像谷歌一样的网格来显示图像,并且它会在向下滚动时加载。 在历史记录上单击我想再次显示加载的图像。 这就是为什么,在每次向下滚动时,我都存储了最后加载的页码。在饼干中。但是,当我在同一浏览器的两个选项卡中加载相同的网格页面时,出现了问题。 有没有办法为每个选项卡单独创建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);
}
php javascript
2个回答
0
投票

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

另外,听起来您正在寻找的是“pushState”——它是 HTML5 的一部分。 一些有用的资源:

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

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

这里还有聚丝:

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

希望这有帮助!


0
投票

当我开始使用history.pushstate时,我遇到了类似的问题,发现它删除了为页面传输的post数据,并且刷新给出了不带参数的get请求的结果。

© www.soinside.com 2019 - 2024. All rights reserved.