每当用户关闭浏览器窗口时,我需要清除一些会话变量。该窗口可以通过两种方式关闭:
我使用的是jQuery,所以侦听器是:
// clear some session variables
$(window).bind('beforeunload', function() {
makeAjaxCall(some, params);
});通过调用最终执行的函数关闭该窗口:
window.close();问题是关闭窗口的第二种方法只触发FF中的beforeunload事件。在Chrome中,第二种方式有时只起作用,而在Safari中则根本不起作用。有什么想法吗?
解决方案(目前为止):
// clear search filter whenever the user closes the window
$(window).on('beforeunload', function() { // most browsers except Safari
doSomeMagic(param);
return;
}).on('unload', function() { // Chrome
doSomeMagic(param);
});这在大多数浏览器中都适用:使用IE8+ ()和/或本机浏览器按钮关闭窗口时,window.close、Chrome、FF
如果本机浏览器窗口关闭了Safari窗口,则它也能工作。
在歌剧里根本不起作用。
发布于 2014-02-05 12:36:22
尝尝这个
$(window).on('beforeunload', function(){
return 'Are you sure you want to leave?';
});
$(window).on('unload', function(){
logout();
});这个解决方案适用于所有浏览器,我已经对它进行了测试。
https://stackoverflow.com/questions/21576316
复制相似问题