当前位置: 首页 > 知识库问答 >
问题:

试图检测浏览器关闭事件

劳英华
2023-03-14

我尝试了许多方法通过jQuery或JavaScript检测浏览器关闭事件。但是,不幸的是,我一直未能检测到接近。onbeforeuloadonunload方法也不起作用。

如何在卸载前检测窗口关闭卸载事件?


共有3个答案

廖臻
2023-03-14

在Linux chrome环境下,请尝试以下代码。在运行之前,请确保jquery已附加到文档。

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

要进行简单操作,请执行以下步骤:

  1. 打开http://jsfiddle.net/
  2. 在html、css或javascript框中输入内容
  3. 尝试关闭chrome中的tab

它应该显示以下图片:

郎刚捷
2023-03-14

参考各种文章并做一些尝试和错误测试,最后我发展了这个想法,它对我来说非常适合。

其目的是检测通过关闭浏览器触发的卸载事件。在这种情况下,鼠标将离开窗口,指向关闭按钮('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();
});

如果有任何需要自定义消息,则ConfirmLe函数将给出弹出的默认消息,然后返回要显示的文本,而不是函数ConfirmLe()中的空字符串。

鲜于宜修
2023-03-14

你试过这个密码吗?

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中不起作用(即使在最新版本中也是如此)。有关它的更多详细信息,请转到此线程。

 类似资料:
  • 问题内容: 我尝试了许多方法来通过jQuery或JavaScript检测浏览器关闭事件。但是,不幸的是,我无法检测到关闭。该和方法也没有工作。 如何检测的窗口,或事件? 问题答案: 您是否尝试过此代码? 第二个功能是可选的,以避免在单击和元素时提示。

  • 我想捕获浏览器窗口/选项卡关闭事件。我尝试了以下方法,但不起作用: 尝试了这些链接,但没有更多的成功。 JavaScript检查浏览器窗口何时关闭 如何捕获浏览器窗口关闭事件? javascript检测浏览器关闭标签/关闭浏览器 尝试检测浏览器关闭事件 问题: 我只想检测浏览器关闭事件,并在不向用户显示提示的情况下对此进行一些处理。 我尝试过很多方法,通过jQuery或JavaScript检测浏览

  • 问题内容: 是否有跨浏览器的JavaScript / jQuery代码来检测浏览器或浏览器选项卡是否已关闭,但不是由于单击链接而导致的? 问题答案: 如果我正确地理解了您,您想知道标签/窗口何时有效关闭。好吧,AFAIK 检测事件的唯一方法是&事件。 不幸的是(或幸运的是?),当您通过或浏览器的后退按钮离开网站时,也会触发这些事件。因此,这是我能给出的最佳答案,我认为您无法从本机检测Java 脚本

  • 问题内容: 您好,我要在关闭选项卡(不是浏览器)事件中查找信息,如果Java中有一个applet信息。我想知道是否有一个事件或一种检查该方法的方法。我只想捕获事件并创建一个小弹出框,说明您的会话将过期或类似的内容。使用Java或Javascript完全有可能吗? 更新:好的,你们向我指出的信息使我能够获得足够简单的JavaScript信息。现在它在IE,Chrome和Firefox中可以正常工作,

  • 问题内容: 嗨,我想知道如何在浏览器选项卡关闭时提示消息。我正在使用Reactjs。 这是我尝试添加到我的react组件中的内容。请指导我如何继续进行。 问题答案: 除了事件名称和警报将在该特定事件中阻止这一事实之外,您所做的都是正确的。 您可以显示如下消息: 希望这可以帮助。

  • 我已经从错误消息中删除了ip地址和主机名。