javascript - jQuery:关闭浏览器时删除cookie( session cookie)

标签 javascript jquery cookies

听起来很简单,我认为它应该很简单,但不知何故我无法让它工作......

我想使用 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 插件。以下是测试方法。 (来源如下)

  1. 将以下网址复制到剪贴板:http://fiddle.jshell.net/8Ahg2/show/
  2. 完全关闭您选择的浏览器 - 这应该与浏览器无关。
  3. 打开浏览器,粘贴网址。第一次应该说:检查cookie... 设置cookie...
  4. 刷新页面,注意它现在应该显示 cookie 的值(“test”)
  5. 再次完全关闭浏览器。
  6. 导航至仍应位于剪贴板中的网址。 *第一次查看时不要刷新页面,它应该再次显示“检查 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/

相关文章:

android - Cookies & Webview - Android 中的 CookieSyncManager!

javascript - 如何等待connection.connect

javascript - 在输入字段内添加下拉箭头

javascript - select2 为每个选项手动设置选项属性

reactjs - 如何在react中设置cookie?

javascript - 我的cookie消失了

javascript - HTML 标签到 JSX React Native

javascript - Angular2网格错误

javascript - 使用 ajax 从 knockout js 数组发送信息

javascript - 在 JSON 数组中搜索字符串并检索包含该字符串作为值的对象