听起来很简单,我认为它应该很简单,但不知何故我无法让它工作......
我想使用 Javascript 设置 Cookie,并且当用户退出浏览器时应删除该 Cookie。设置cookie并获取值不是问题。但是当我退出浏览器并重新打开它时,cookie 仍然存在(Firefox)。
我使用 jQuery 和 Cookie-Plugin .
这是我的测试代码:
$(document).ready(function(){
$('#output').append( '<li>initialize...</li>' );
var $cookieVal = $.cookie('testCookie');
$('#output').append( '<li>check cookie...</li>' );
if(!$cookieVal) {
$('#output').append( '<li>set cookie...</li>' );
$.cookie('testCookie', 'eat cookies', { path: '/' });
//console.log( $.cookie() );
} else {
$('#output').append( '<li>cookie is already set...</li>' );
$('#output').append( '<li>cookie value: '+$.cookie('testCookie')+'</li>' );
}
});
请在 jsFiddle 找到工作示例.
最佳答案
我开始怀疑您的测试方法是否可能是这里的问题。所以,我要以一种具体的方式来写这个。
实际答案:浏览器设置
在 Firefox 中,选项>常规>当 Firefox 启动时>“显示上次的窗口和选项卡”将保留您之前的 session 。更改此设置以查看它是否确实按预期工作。 Firefox 正在延长您的 session 时间。有关更多信息,请参阅此“错误”:http://bugzilla.mozilla.org/show_bug.cgi?id=530594
大多数浏览器中都有类似的设置,其行为方式可能相同。
原始答案:
我创建了一个 fiddle ,http://jsfiddle.net/8Ahg2/使用 document.cookie 而不是 jquery cookie 插件。以下是测试方法。 (来源如下)
- 将以下网址复制到剪贴板:
http://fiddle.jshell.net/8Ahg2/show/
- 完全关闭您选择的浏览器 - 这应该与浏览器无关。
- 打开浏览器,粘贴网址。第一次应该说:
检查cookie... 设置cookie...
- 刷新页面,注意它现在应该显示 cookie 的值(“test”)
- 再次完全关闭浏览器。
- 导航至仍应位于剪贴板中的网址。 *第一次查看时不要刷新页面,它应该再次显示“
检查 cookie...” 设置 cookie...
'
js
$(document).ready(function () {
$('#output').append('<li>initialize...</li>');
//this regex gets the "name" cookie out of the string of cookies that look like this: "name=test;var2=hello;var3=world"
var cookieVal = document.cookie.replace(/(?:(?:^|.*;\s*)name\s*\=\s*([^;]*).*$)|^.*$/, "$1");
$('#output').append('<li>check cookie...</li>');
if (!cookieVal) {
$('#output').append('<li>set cookie...</li>');
document.cookie = "name=test";
} else {
$('#output').append('<li>cookie is already set...</li>');
$('#output').append('<li>cookie value: ' + cookieVal + '</li>');
}
});
关于javascript - jQuery:关闭浏览器时删除cookie( session cookie),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18111498/