分别为每个选项卡创建cookie

时间:2013-09-10 06:22:30

标签: php javascript

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

1 个答案:

答案 0 :(得分:0)

由于Cookie是“域”范围的,因此它们不是标签或窗口特定的。

此外,听起来你正在寻找的是'pushState' - 这是HTML5的一部分。 一些有用的资源:

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

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

此处还有一个polyfil:

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

希望这有帮助!