我正在尝试在浏览器窗口/标签之间共享一些信息,而且由于浏览器支持问题,我对HTML5本地存储很谨慎。一些谷歌搜索引导我相信cookie可以用于此,所以我抓住了jquery.cookie并设置了一个简单的测试。
加载时编写cookie的两个页面:
$.cookie("testValue", new Date().getTime());
和一个按钮,在每个警报上显示cookie值:
alert($.cookie("testValue"));
在测试时,我会在每个页面上看到不同的值,这会让我相信这不起作用,但我会继续在这里以及人们似乎推荐它的其他地方发布帖子,所以我想知道是否我只是做错了什么?
答案 0 :(得分:2)
Cookie仅在JS设置时或在页面加载时在JavaScript环境中更新。
localStorage就是为此而设计的。 IE8支持它很好,它只是真正的旧IE7及以下。虽然IE9仅适用于Windows-Vista-and-7,但IE8在IE上运行良好,因此您可以毫无疑问地向仍在古老浏览器上的用户进行更新。
(我不能说这个,但IE确实需要像所有其他浏览器一样的自动更新程序......)
答案 1 :(得分:0)
DateTime()
未定义。请改用Date()
。
$.cookie("testValue", new Date().getTime());
无论如何,它对我有用。这是一个简单的html页面:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.1.js'></script>
<script type='text/javascript' src="https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js"></script>
<script type='text/javascript'>
$(window).load(function(){
$("#get").click(function(){
alert($.cookie("testValue"));
});
$("#set").click(function(){
$.cookie("testValue", new Date().getTime());
});
});
</script>
</head>
<body>
<a id="get" href="#">get cookie</a>
<a id="set" href="#">set cookie</a>
</body>
</html>
使用FireFox 10.0在localhost中尝试。
答案 2 :(得分:0)
尝试二号= P
尝试这样的事情:
<iframe id="cookies" src="refresher.html" style="display: none"; />
<script type="text/javascript">
(function() {
var ifr = document.getElementById('cookies');
setInterval(function() {
var cd = ifr.contentDocument.cookie.split(";");
l = cd.length, i, k, ret = {};
for( i=0; i<l; i++) {
k = cd[i].split("=");
k[0] = k[0].replace(/^ +| +$/g,'');
k[1] = k[1].replace(/^ +| +$/g,'');
ret[k[0]] = k[1];
}
window.cookiedata = ret;
},5000);
})();
</script>
refresher.html:
<script type="text/javascript">setTimeout(function() {location.reload();},5000);</script>
你仍然可以使用jQuery $.cookie
来设置一个Cookie,但是获取他们现在使用cookiedata.cookiename
。
将5000
调整为响应性和重新加载数据之间的良好折衷。