2009-10-14 156 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