首先,对不起,我看到关于整个cookie问题有很多重复,但是我不得不添加这个问题,因为我对不同的jQuery cookie plugIns感到非常困惑。
我正在使用这个jQuery Cookie插件v1.4.1
我在我的一个页面上成功地实现了以下代码(不是主页!)
$(document).ready( function() {
if ($.cookie('noFadeWorks')) {
// do something when initial effect on page enter has been already seen
} else {
// functions here to do the initial page enter effect
$.cookie( 'noFadeWorks', true );
};
});现在,这基本上适用于一些问题/问题:
我能解释一下自己吗?怎样才能正确地做到这一点呢?我也尝试过过期选项,但没有成功。
提前谢谢你!
发布于 2015-05-14 01:27:13
注意: jquery v1.4.1不接受数字作为值:https://github.com/js-cookie/js-cookie/tree/v1.4.1。但这不是问题所在。
我用jQueryv2.1.4和v1.4.1创建了一个小测试用例(来自上面的链接):
<!DOCTYPE html>
<script src="jquery.js"></script>
<script src="jquery-cookie.js"></script>
<script>
$(document).ready( function() {
if ($.cookie('noFadeWorks')) {
// do something when initial effect on page enter has been already seen
alert( "has cookie!" );
} else {
// functions here to do the initial page enter effect
$.cookie( 'noFadeWorks', 'true' );
alert( "No cookie, creating..." );
};
});
</script>发生了以下情况:
path: "/"如果我使用ctrl + shift + n以匿名模式启动窗口,就会删除cookie (Chrome启动一个新的干净浏览器实例)。
这就是我的理论:
如果您选择在重新打开Chrome之后恢复选项卡,则会再次创建cookie,因为Chrome正在恢复它的窗口会话,包括以前存在的所有cookie。如果您禁用了chrome的“还原会话”功能,用户关闭浏览器后,cookies可能会被删除,就像预期的那样。
我没有测试禁用该功能,但从直觉上看,这似乎是问题所在。
如果从会话的某些点,我可以告诉浏览器忘记cookie,然后从0开始(在特定页面上有效果),那就太棒了。
您可以指定希望cookie有效的路径,可以从更接近根的另一条路径(如)读取cookie而不是:
<!DOCTYPE html>
<script src="jquery.js"></script>
<script src="jquery-cookie.js"></script>
<script>
$(document).ready( function() {
if ($.cookie('noFadeWorks')) {
// do something when initial effect on page enter has been already seen
alert( "has cookie!" );
} else {
// functions here to do the initial page enter effect
$.cookie( 'noFadeWorks', 'true', {
// It will not be visible in the root, only in pages inside the "/dir/" path
path: "/dir/"
});
alert( "No cookie, creating..." );
};
});
</script>我建议试用jquery的最新版本(现在是js-cookie):https://github.com/js-cookie/js-cookie/releases。
https://stackoverflow.com/questions/30185501
复制相似问题