JQuery登录如果语句代码工作不正常则注销

JQuery Sign in Sign out if statement code not working properly

本文关键字:不正常 注销 工作 代码 登录 如果 语句 JQuery      更新时间:2023-09-26

自定义"登录"answers"注销"切换链接的代码段适用于旧的非响应模板,但在响应模板上表现不佳。当它编写html行时,它实际上用代码中引用的<a>替换了<body>中的所有内容。

以下是许多在线bigcommerce(非响应主题(使用的原始自定义代码片段:

<li class="loginLogout"><span>
<script type="text/javascript">
//<![CDATA[
var GlobalFname="%%GLOBAL_CurrentCustomerFirstName%%";
if (GlobalFname!="" && GlobalFname!="Guest")
{
    //Customer is Logged On
    document.writeln ('<a href="%%GLOBAL_ShopPath%%/login.php?action=logout">Sign out</a>');
} else {
    //Customer is not Logged On
    document.writeln ('<a href="%%GLOBAL_ShopPath%%/login.php">Sign in</a>');
    };
//]]>
</script>
</span> </li>

我不知道为什么它会用这个替换<body>内部的所有东西。。。。"document.writeln...."所以你得到的只是页面上的实际链接,就这样

以下是我尝试实现的内容,它只需要"一个警告":

它不会更改"注销"链接,直到刷新页面或转到另一个页面。变量%%GLOBAL_CurrentCustomerFirstName%%确实发生了更改,但jquery不会在"else"语句中加载新链接。

以下是我已经开始工作的代码,除了上面提到的这个问题(它不像第一个那样在<li>中,相反,它只是在页面上自己(:

    <div id="TopMenu">
    <ul>
    <li class="loginLogout login">
        <div class="loginContainer">
        </div>
    </li>
    </ul>
    </div>
    <script type="text/javascript">
    var loginString = '<a href="%%GLOBAL_ShopPath%%/login.php"><i class="icon-lock"></i><span class="narrow_hide">Login</span></a>';
    var logoutString = '<a class="logout_link" href="%%GLOBAL_ShopPath%%/login.php?action=logout"><i class="icon-lock"></i><spanclass="narrow_hide">Logout</span></a>';
    var GlobalFname = "%%GLOBAL_CurrentCustomerFirstName%%";

    if(GlobalFname == "") {
        $("#TopMenu .loginContainer").html(loginString);
    }
    else if(GlobalFname == "Guest") {
        $("#TopMenu .loginContainer").html(loginString);
    }
    else {
        $("#TopMenu .loginContainer").html(logoutString);
    }
    </script>

如果有任何见解,我将不胜感激。我尝试过实现$( document ).ready(function(),甚至尝试过:

$(".login_link").hide();
$(".logoutContainer").html(logoutString);

把它放在<li><div>中的CDATA中也没有帮助。

但我对如何在不需要手动重新加载页面的情况下显示最终的"注销"/"注销"链接感到困惑。感谢您的真知灼见!

我终于有了一个简单的代码,它终于可以工作了,以防有人需要它!

<li class="login_logout"><a href="/login.php">Login</a></li>
<script type="text/javascript">
    var GlobalFname="%%GLOBAL_CurrentCustomerFirstName%%";
   if (GlobalFname === undefined || GlobalFname === null || GlobalFname === "Guest") {  
       // do nothing
   }
   else {
       $(".login_logout a").prop("href", "/login.php?action=logout");
       $(".login_logout a").text("Logout");
   }
</script>​