0

確認用の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でも同じことをやろうとしましたが、唯一の違いは、ドキュメントの準備が整った機能でアラートを受け取ることができたことです。

4

2 に答える 2

6

関数の名前を変更する必要があります。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;
};
于 2012-10-19T16:00:46.107 に答える