0

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

1 回答 1

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/

希望这可以帮助!

于 2013-09-10T06:55:20.787 回答