2016-11-18 131 views
0

我有一個用於編輯某些數據的頁面,並且有一些用於保存數據和關閉頁面的按鈕。該頁面還有一個模式彈出窗口,用於在不保存任何更改(如果他們已做出任何更改)的情況下退出時提示用戶。如何使用JavaScript來阻止窗口關閉而不彈出「您確定要離開本頁」消息?

然而,當用戶點擊按鈕時,這是行不通的,如果他們點擊窗口右上角的X,這不起作用。當他們點擊這個頁面時,我可以讓頁面停下來,並詢問平常的「您確定要離開此頁面」的消息,但這不如模式彈出窗口,我寧願用戶看到無論他們嘗試退出屏幕的方式都是如此。

任何人都可以解釋如何防止窗口關閉,如果用戶已經做出更改,但沒有使用「你確定要離開本頁」的消息,以便我可以展示我的漂亮的模態版本嗎?

回答

0

你不行。如果可以的話,它會被濫用。所以你不能。您的只有選項是onbeforeunload處理程序,它將(與現代瀏覽器)顯示默認消息(不再是自定義消息)。而已。

var showMessage = false; // set it to true when you want the message shown on exit 
window.onbeforeunload = function(e) { 
    if (showMessage) { 
     var event = e || window.event; 
     var msg = "You have unsaved changes."; // Most modern browsers will no 
               // longer actually show this 
               // message, just their own. 
               // But to trigger it, you have to 
               // return one, so may as well make 
               // it useful. 
     if (event) { 
      event.returnValue = msg; // IE 
     } 
     return msg;     // Everyone else 
    } 
}; 
+0

乾杯很多,我懷疑它不能做,但不想放棄太容易。 –