首先,抱歉,我发现有很多关于整个cookie问题的重复,但我必须添加这个,因为我对不同的jQuery cookie插件感到很困惑。
我正在使用此jQuery Cookie Plugin 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 );
};
});
现在这基本上适用于一些问题/问题:
在Safari中按预期工作。当浏览器关闭并重新打开时,所有内容都按照预期和期望从0开始。然而: 谷歌Chrome即使在关闭后重新开放仍然有cookie。我的效果功能不再进入游戏。这里不需要。
如果从会话的某些方面我可以告诉浏览器忘记cookie并从0开始(在特定页面上有效),那将是非常棒的。 我试过了:$ .removeCookie('noFadeWorks');在我的主页上,但这根本不起作用。
我自己解释一下吗? 如何正确完成? 我也尝试过期选项但没有成功。
提前非常感谢!
答案 0 :(得分:1)
注意:jquery cookie v1.4.1不接受Number作为值:https://github.com/js-cookie/js-cookie/tree/v1.4.1。但那不是问题。
我用jquery v2.1.4和jquery-cookie 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的“恢复会话”功能,可能会在用户关闭浏览器后删除Cookie,如预期的那样。
我没有测试过禁用该功能,但直觉上似乎是问题所在。
如果从会话的某些方面我可以告诉浏览器忘记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-cookie(现在是js-cookie):https://github.com/js-cookie/js-cookie/releases