簡體   English   中英

母版頁中的Javascript無法觸發

[英]Javascript in master page not firing

我有一個用於確認的JavaScript函數:

function confirm() {
    var answer = confirm("Are you sure you want to log out?")
    if (answer) {
        return true;
    }

    return false;
} 

在我的鏈接上,我調用此函數:

<div class="header">
                <a href="" class="logo"></a>
                <div class="topToolbar">
                    <span><a href="/Logout.aspx" onclick="return confirm();">Log Out</a></span>
                </div>
            </div>

問題是它從不調用javascript函數,試圖發出警報並且沒有得到任何東西。

我什至嘗試用jQuery bt做到這一點,唯一的區別是我可以在文檔就緒功能上得到警報。

您應該重命名您的函數。 confirm保留給confirm功能:

function shouldContinue() {
    return confirm("Are you sure you want to log out?");
}

接着:

<a href="/Logout.aspx" onclick="return shouldContinue();">Log Out</a>

實際上更確切地說, confirm不是保留關鍵字。 您可以覆蓋confirm功能。 那就是你所做的。 除了在此重寫的函數內,您再次調用了它,因此以遞歸的無窮循環結束。

這是一個示例如何覆蓋它:

window.confirm = function(msg) {
    alert('this is the overriden confirm function');
    return true;
};

您不是在onclick中調用該函數,而是需要重命名該函數,以免與確認沖突。

logoutMessage = function() {
    var answer = confirm("Are you sure you want to log out?")
    if (answer) {
        return true;
    }

    return false;
} ​

<div class="header">
    <a href="" class="logo"></a>
    <div class="topToolbar">
        <span><a href="/Logout.aspx" onclick="return logoutMessage()">Log Out</a></span>
    </div>
</div>​

理想情況下,您不會在html中使用onclick屬性。 您可以使用事件偵聽器將其完全保留在javascript中,這更加清晰,避免了污染標記。 如果為注銷鏈接提供一個ID,則可以執行以下操作:

document.getElementById("logout").addEventListener("click", logoutConfirm);

這將在單擊時調用該函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM