我正在尝试使用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/
答案 0 :(得分:1)
我会测试以下内容:
$.cookie('DNN-COOKIE', null);
然后检索:
var preval = $.cookie('DNN-COOKIE')
并断言:
preval === null;
无论如何,使用起来可能更安全:
if(!preval) {
$(this).hide();
}
更新:
您是否需要将cookie设置为域的根目录:
$.cookie('the_cookie', 'the_value', { path: '/' });
如果您使用的是子域名,可能就是这种情况。