检查是否设置了cookie然后使用jquery cookie库显示注销链接

时间:2012-04-24 15:00:09

标签: javascript jquery cookies

我正在尝试使用cookie.js库清除DNN Cookie。 当用户点击登录时,他们应该通过CMS登录。那么jquery需要:

检查cookie是否已设置(如果已设置,则隐藏登录链接并显示注销)

这是我的尝试:

HTML:

<a id="dnn_dnnLOGIN_cmdLogin" href="Login">
    Login
</a>

||

<a id="dnn_dnnLOGIN_cmdLogin" href="Logoff">
    Logoff
</a>

<br />

<a id="see" href="#">
    see if cookie is set?
</a>

JQUERY:

$('#dnn_dnnLOGIN_cmdLogin').live('click', function() {
    var preval = $.cookie('DNN-COOKIE');
    if(preval != null) {
        $(this).hide();
    } else {
    var action = $(this).attr('href');
    var cookie_value = (action == 'Login') ? 1 : null;

    $.cookie('DNN-COOKIE', cookie_value);
    }
    return false;
});

// clicking on 'see' should bring up an alert box display the cookie value of 1 or 0
$('#see').live('click', function() {

    alert($.cookie('DNN-COOKIE'));

    return false;
});

我已将库资源添加到此JsFiddle:http://jsfiddle.net/whQaq/ 我需要检查cookie是否已设置

编辑:这是一个似乎正在运行的示例,但在DNN中,当我将代码放在皮肤文件中时,它不起作用。 http://jsfiddle.net/whQaq/3/

1 个答案:

答案 0 :(得分:1)

我会测试以下内容:

$.cookie('DNN-COOKIE', null);

然后检索:

var preval = $.cookie('DNN-COOKIE')

并断言:

preval === null;

无论如何,使用起来可能更安全:

if(!preval) {
    $(this).hide();
}

更新:

您是否需要将cookie设置为域的根目录:

$.cookie('the_cookie', 'the_value', { path: '/' });

如果您使用的是子域名,可能就是这种情况。