能否请您给我检测的最好方法只有窗口关闭事件对所有的浏览器的jQuery?
我的意思是单击X浏览器上的按钮 或window.close(),而不是F5表单提交
window.location或链接。我一直在寻找许多线程,但还没有找到正确的方法。
能否请您给我检测的最好方法只有窗口关闭事件对所有的浏览器的jQuery?
我的意思是单击X浏览器上的按钮 或window.close(),而不是F5表单提交
window.location或链接。我一直在寻找许多线程,但还没有找到正确的方法。
您可以使用:
$(window).unload(function() {
//do something
}
Unload() 在 jQuery 1.8 版中已弃用,因此如果您使用 jQuery > 1.8,您甚至可以使用 beforeunload 代替。
每当用户出于任何原因离开您的页面时,都会触发 beforeunload 事件。
$(window).on("beforeunload", function() {
return confirm("Do you really want to close?");
})
没有用于捕获浏览器关闭事件的特定事件。
您只能在卸载当前页面时捕获。
通过这种方法,它会在刷新/导航当前页面时生效。
即使计算鼠标事件的 XY 位置也不会给您带来好的结果。
unload() 方法在 jQuery 1.8 版中被弃用。
所以如果你使用的版本早于 1.8
然后使用 -
$(window).unload(function(){
alert("Goodbye!");
});
如果您使用的是 1.8 及更高版本
然后使用 -
window.onbeforeunload = function() {
return "Bye now!";
};
希望这会奏效:-)
没有用于捕获浏览器关闭事件的特定事件。但是我们可以通过浏览器位置 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 事件:- 我用于为审计表设置超时。
$(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) {
}
}
});
}
}
};
});