2009-10-14 232 views
20

我想問用戶他是否真的想離開頁面,當他點擊關閉按鈕就像它在谷歌文檔中完成。如何使用jQuery來做到這一點?jquery防止窗口關閉

回答

28

將窗口的onbeforeunload屬性設置爲函數。

This post has a good example on how to do it.

或者又如:

<script language="JavaScript"> 
    var needToConfirm = true; 

    window.onbeforeunload = confirmExit; 
    function confirmExit() 
    { 
    if (needToConfirm) 
     return message to display in dialog box; 
    } 
</script> 

... 

<input type="Submit" value="Save" onclick="needToConfirm = false;" /> 


併成立needToConfirm爲您的表單,您可以:爲您

$(document).ready(function() { 
    $(':input', document.myForm).bind("change", function() { needToConfirm = true; }); // Prevent accidental navigation away 
}); 
-2

JQuery用戶界面可能是有用的 - 見this link。它顯示了幾種不同類型的對話 - 你想要的是我認爲的「模態確認」。但請記住,JQuery UI庫非常龐大,因此可能會更好地查找更多定製選項(通過搜索JQuery確認模式找到了一些選項)。我無法保證這些解決方案的質量,因爲我從未嘗試過這些解決方案。

+2

爲什麼對近7年前發佈的帖子投了票? – n00dle 2016-08-15 08:08:16

3

以下爲我工作;

$(window).unload(function() { 
       if(event.clientY < 0) { 
        //do whatever you want when closing the window.. 
       } 
      }); 
+2

我認爲'beforeunload'事件對於詢問用戶他是否想保存他的改變更有用:'$(window).bind('beforeunload',function(){...});' – 2013-12-29 11:24:52

+0

啊!看起來這在過去的幾年裏發生了變化...所以在2011年它可能還在工作。 – 2013-12-29 11:31:43