试图检测浏览器关闭事件

试图检测浏览器关闭事件

我尝试过许多方法来通过jQuery或JavaScript检测浏览器关闭事件。但是,不幸的是,我没有能够发现接近。这个onbeforeunloadonunload方法也不起作用。

怎样才能侦测到窗户?closeunload,或beforeunload事件?


守着一只汪
浏览 469回答 3
3回答

qq_遁去的一_1

你试过这个密码了吗?window.onbeforeunload = function (event) {     var message = 'Important: Please click on \'Save\' button to leave this page.';     if (typeof event == 'undefined') {         event = window.event;     }     if (event) {         event.returnValue = message;     }     return message;};$(function () {     $("a").not('#lnkLogOut').click(function () {         window.onbeforeunload = null;     });     $(".btn").click(function () {         window.onbeforeunload = null;});});第二个函数是可选的,以避免在单击时提示。#lnkLogOut和.btn元素。还有一件事是,自定义提示符不会在Firefox中工作(即使在最新版本中也是如此)。欲知更多详情,请浏览这,这个线。

森栏

参考了各种文章,并做了一些尝试和错误测试,最后,我提出了这个想法,这是非常适合我的。这样做的目的是检测关闭浏览器所触发的卸载事件。在这种情况下,鼠标将从窗口移出,指向“关闭”按钮(“X”)。.$(window).on('mouseover', (function () {     window.onbeforeunload = null;}));$(window).on('mouseout', (function () {     window.onbeforeunload = ConfirmLeave;}));function ConfirmLeave() {     return "";}var prevKey="";$(document).keydown(function (e) {                 if (e.key=="F5") {         window.onbeforeunload = ConfirmLeave;     }     else if (e.key.toUpperCase() == "W" && prevKey == "CONTROL") {                         window.onbeforeunload = ConfirmLeave;        }     else if (e.key.toUpperCase() == "R" && prevKey == "CONTROL") {         window.onbeforeunload = ConfirmLeave;     }     else if (e.key.toUpperCase() == "F4" && (prevKey == "ALT" || prevKey == "CONTROL")) {         window.onbeforeunload = ConfirmLeave;     }     prevKey = e.key.toUpperCase();});如果需要对消息进行自定义,则ConFirmLeave函数将给出弹出的默认消息,然后返回要显示的文本,而不是在函数ConFirmLeave().
打开App,查看更多内容
随时随地看视频慕课网APP