1

我有一个无法正常工作的 DNN 登录/注销控件。因此,我想使用 JS/JQUERY 自己制作。

当用户登录时,页面上的 HTML 如下所示:

<a href="javascript:__doPostBack('dnn$dnnLOGIN$cmdLogin','')" class="SkinObject" id="dnn_dnnLOGIN_cmdLogin">Logout</a>

当他们“注销”时,它看起来像这样:

<a href="javascript:__doPostBack('dnn$dnnLOGIN$cmdLogin','')" class="SkinObject" id="dnn_dnnLOGIN_cmdLogin">Login</a>
  • 我想检查 cookie 是否已设置,是否显示注销链接,如果未设置则显示登录链接。

  • 单击登录将检查 cookie 是否存在(它应该显示为登录)并将它们带到登录页面。

  • 单击注销应删除 cookie 并刷新页面,然后将链接再次更改回“登录”,因为没有找到 cookie。

我以此作为示例指南:http: //jsfiddle.net/MadLittleMods/73vzD/

这是我到目前为止所做的:

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
</a>

JS:

//set the cookie once user has logged in
//for testing purposes clicking login should set the cookie to 1
//clicking on Logoff 'should' set the cookie to 0
$('#dnn_dnnLOGIN_cmdLogin').live('click', function() {
    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;
});
4

1 回答 1

1

cookie 的演示工作得很好。看来您忘记包含插件了。

在这里看到一个工作的


更新:

您可以像这样检查预先存在的cookie

var preval = $.cookie('cookie-name');
if(preval != null) {
    //... 
}

演示

于 2012-04-11T10:58:46.583 回答