window.onbeforeunload和window.onunload在Firefox,Safari,Opera中不起作用? [英] window.onbeforeunload and window.onunload is not working in Firefox, Safari, Opera?
问题描述
在我的聊天应用程序中,我需要在关闭应用程序时得到用户的确认.
In my chat application I need to get confirmation from user, when my application closes.
因此我将window.onbeforeunload
用于确认警报,将window.onunload
用于
logout()
.
So I used the window.onbeforeunload
for confirmation alert and window.onunload
for
logout()
.
-
但是这两个功能都可以在IE和Chrome中使用. (应用程序运行正常)
But both functions are working in IE and Chrome. (Application works fine)
window.onbeforeunload
在Opera中不起作用,我的消息也不会在Firefox中显示.
window.onbeforeunload
not working in Opera and my message will not get displayed in Firefox.
window.onunload
在Safari,Opera和Firefox中不起作用.
window.onunload
not working in Safari, Opera and Firefox.
我的JavaScript代码将是:
My JavaScript code will be:
// 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进行相同的功能,
I also tried the same function with 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>
推荐答案
我通过将Ajax异步请求更改为同步请求,获得了除Opera以外的所有浏览器中onunload
的解决方案.
I got the solution for onunload
in all browsers except Opera by changing the Ajax asynchronous request into synchronous request.
xmlhttp.open("POST","LogoutAction",false);
它适用于除 Opera 以外的所有浏览器.
It works well for all browsers except Opera.
这篇关于window.onbeforeunload和window.onunload在Firefox,Safari,Opera中不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!