簡體   English   中英

回發/頁面加載后window.onbeforeunload無法正常工作

[英]window.onbeforeunload not working properly after postback/page load

我有這個簡單的功能,可以防止用戶意外關閉瀏覽器頁面(在我的情況下為chrome),提示確認消息。

window.onbeforeunload = function () {
    return "Are you sure you want to leave this page?";
};

一切正常,但我發現了一些限制:

  • 在頁面加載時,如果您首先不以某種方式與頁面進行交互,則該功能將不起作用
    例如,點擊DOM中的某個位置

這種行為在經典的ASP.NET應用程序(網頁)中特別令人討厭,因為該應用程序將DB中的數據加載到gridview中,因為每次加載數據后都會附加回發,並且如果關閉該選項卡,則不會出現確認消息。 (我知道您可以使用UpdatePanels避免回發,但這不是我正在尋找的解決方案)

我試圖在頁面加載時對DOM的某些元素產生點擊:

$('#someID').click();

但是沒有用

有任何想法嗎?

根據https://developer.mozilla.org/zh-CN/docs/Web/API/WindowEventHandlers/onbeforeunload

您可以並且應該通過window.addEventListener()beforeunload事件來處理此事件。 那里有更多文檔。

鏈接的文章繼續指出:

基於WebKit的瀏覽器不遵循該對話框的規范。 一個幾乎跨瀏覽器的工作示例將接近以下內容:

 window.addEventListener("beforeunload", function (e) { var confirmationMessage = "\\o/"; e.returnValue = confirmationMessage; // Gecko, Trident, Chrome 34+ return confirmationMessage; // Gecko, WebKit, Chrome <34 }); 

嘗試使用$('#someID')。focus()代替$('#someID')。click()。

$(document).ready(function () {
$('#someID').focus();
});

暫無
暫無

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

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