小编典典

window.onbeforeunload和window.onunload在Firefox,Safari,Opera中不起作用?

javascript

在我的聊天应用程序中,我需要在关闭应用程序时从user确认。

所以我使用了window.onbeforeunload确认警报和window.onunloadlogout()。

  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>

阅读 428

收藏
2020-04-25

共1个答案

小编典典

onunload通过将Ajax异步请求更改为同步请求,我获得了除Opera以外的所有浏览器的解决方案。

xmlhttp.open("POST","LogoutAction",false);

它适用于 Opera 以外的所有浏览器。

2020-04-25