为了账号安全,请及时绑定邮箱和手机立即绑定

试图检测浏览器关闭事件

试图检测浏览器关闭事件

守着一只汪 2019-07-02 17:06:18
试图检测浏览器关闭事件我尝试过许多方法来通过jQuery或JavaScript检测浏览器关闭事件。但是,不幸的是,我没有能够发现接近。这个onbeforeunload和onunload方法也不起作用。怎样才能侦测到窗户?close, unload,或beforeunload事件?
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

你试过这个密码了吗?

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中工作(即使在最新版本中也是如此)。欲知更多详情,请浏览这,这个线。


查看完整回答
反对 回复 2019-07-02
?
森栏

TA贡献1810条经验 获得超5个赞

参考了各种文章,并做了一些尝试和错误测试,最后,我提出了这个想法,这是非常适合我的。

这样做的目的是检测关闭浏览器所触发的卸载事件。在这种情况下,鼠标将从窗口移出,指向“关闭”按钮(“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().


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 468 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信