javascript - window.onbeforeunload 和 window.onunload 在 Firefox、Safari、Opera 中不起作用?

标签 javascript jquery dom-events

在我的聊天应用程序中,当我的应用程序关闭时,我需要得到用户的确认。

所以我使用了 window.onbeforeunload 作为确认提示,window.onunload 作为 注销()

  1. 但这两个功能都可以在 IE 和 Chrome 中使用。 (应用程序工作正常)

  2. window.onbeforeunload 在 Opera 中不工作,我的消息不会在 Firefox 中显示。

  3. window.onunload 在 Safari、Opera 和 Firefox 中不工作。

我的 JavaScript 代码将是:

// Used for confirmation, to closing the window 
window.onbeforeunload = function () {

    return  "Are you sure want to LOGOUT the session ?";
}; 

// Used to logout the session, when browser window was closed 
window.onunload = function () {

    if((sessionId != null)&&(sessionId!="null")&& (sessionId != ""))
        logout();
};

我也用 JQuery 尝试过同样的功能,

<script type="text/javascript">

    $(window).on('beforeunload', function() {
        return 'Are you sure want to LOGOUT the session ?';
    });

    $(window).unload(function() {
        if ((sessionId != null) && (sessionId != "null") && (sessionId != "")) {
            logout();
        }
    });
    
</script>

最佳答案

很遗憾,这些浏览器不支持您使用的方法。为了支持我的回答(这种不支持的行为),我在下面提供了链接。

onbeforeunloadonunloadopera 中不工作...支持这个

onbeforeunload in Opera
http://www.zachleat.com/web/dont-let-the-door-hit-you-onunload-and-onbeforeunload/

虽然 onunload 事件不能完全起作用,但您可以使用 onunload 在用户单击链接以离开未保存的页面时显示警告形式。

onunload 无法在 safari 中工作......以支持此

https://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/

您可以尝试在 Safari 浏览器中使用 pagehide 事件来代替 onunload

onunload 不能在 firefox 中工作...支持这个

https://bugzilla.mozilla.org/show_bug.cgi?id=681636

他们还没有在 FF 中提出解决方案

祝你好运。

关于javascript - window.onbeforeunload 和 window.onunload 在 Firefox、Safari、Opera 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14645011/

相关文章:

c# - 如何从客户端访问服务器端WebControl?

jquery表单在模式中提交并确认

javascript - Angular 嵌套多次单击指令

javascript - 想要在具有相同类的多个元素上添加 "addEventListener"

javascript - 使用外部js文件引用td标签

javascript - 使用 setState 设置新状态和更改旧状态之间的区别

javascript - Js Array.prototype.map() 恰好是可变的?

javascript - 为什么事件监听器无法读取属性?

javascript - 使用 For 循环 Javascript 创建嵌套空数组

javascript - 如何从 Stripe 检索卡号