[英]ASP.net : Master page Javascript function not firing from every content page
[英]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.