通过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) { } } }); } } }; });