通过Jquery检测closures窗口事件

你可以请给我最好的方式来检测所有浏览器的jQuery的窗口closures事件

我的意思是单击浏览器上的Xbutton或window.close(),而不是F5,表单提交,window.location或链接。 我正在寻找很multithreading,但还没有find正确的方法。

非常感谢您的支持。

没有捕获浏览器closures事件的具体事件。

您只能在卸载当前页面时进行捕获。

通过这种方法,刷新/导航当前页面时会受到影响。

即使计算鼠标事件的XY位置也不会给你带来好的结果。

您可以使用:

$(window).unload(function() { //do something } 

Unload()在jQuery版本1.8中被弃用,所以如果你使用jQuery> 1.8,你甚至可以使用beforeunload。

每当用户因任何原因离开您的页面时,都会触发beforeunload事件。

 $(window).bind("beforeunload", function() { return confirm("Do you really want to close?"); }) 

源浏览器窗口closures事件

对于最新的jQuery版本推荐使用.on()而不是.bind()

jQuery版本1.8中不推荐使用unload()方法。

所以如果你使用的是1.8以前的版本

然后使用 –

 $(window).unload(function(){ alert("Goodbye!"); }); 

如果你使用的是1.8或者更高

然后使用 –

 window.onbeforeunload = function() { return "Bye now!"; }; 

希望这会工作:-)

没有捕获浏览器closures事件的具体事件。 但是我们可以通过浏览器位置XY来检测。

 <script type="text/javascript"> $(document).ready(function() { $(document).mousemove(function(e) { if(e.pageY <= 5) { //this condition would occur when the user brings their cursor on address bar //do something here } }); }); </script> 

结合mousemove和window.onbeforeunload事件: –我用于设置审计表TimeOut。

  $(document).ready(function () { var checkCloseX = 0; $(document).mousemove(function (e) { if (e.pageY <= 5) { checkCloseX = 1; } else { checkCloseX = 0; } }); window.onbeforeunload = function (event) { if (event) { if (checkCloseX == 1) { //alert('1111'); $.ajax({ type: "GET", url: "Account/SetAuditHeaderTimeOut", dataType: "json", success: function (result) { if (result != null) { } } }); } } }; });