Javascript 如何检测选项卡/窗口关闭事件,然后使用jqueryui显示自定义覆盖?
我想检测一个选项卡/窗口关闭事件,不包括F5刷新和链接单击事件等,然后显示覆盖。我在网上找到了如下答案:Javascript 如何检测选项卡/窗口关闭事件,然后使用jqueryui显示自定义覆盖?,javascript,jquery,html,browser,dom-events,Javascript,Jquery,Html,Browser,Dom Events,我想检测一个选项卡/窗口关闭事件,不包括F5刷新和链接单击事件等,然后显示覆盖。我在网上找到了如下答案: endSession: function() { //customized overlay goes here }, wireUpEvents: function() { var self = this; self.validNavigation = false; window.onbeforeunlo
endSession: function() {
//customized overlay goes here
},
wireUpEvents: function() {
var self = this;
self.validNavigation = false;
window.onbeforeunload = function() {
if (!self.validNavigation) {
self.endSession();
return "bye"; // Chrome needs a returned string to fire the event
}
}
$('html').bind('keypress', function(e){
if (e.keyCode == 116) {
self.validNavigation = true;
}
});
$('a').bind("click", function(){
self.validNavigation = true;
});
$('form').bind('click', function(){
self.validNavigation = true;
});
$('input[type=submit]').bind('click',function(){
self.validNavigation = true;
});
}
$(document).ready(function() {
wireUpEvents();
});
但我发现了两件奇怪的事:
无法检测F5按键事件,它只能检测那些数字和字符按键事件。最让我吃惊的是,它是字符t而不是F5,它的keyCode==116!似乎116是小写字母t的ascii码
由于Chrome需要一个返回的字符串来触发事件,因此在触发事件时,它总是显示一个默认弹出窗口,其中包含该字符串,这意味着我无法使用jqueryui或其他东西创建自定义弹出窗口。如何解决这个问题
我也有同样的问题。你找到解决办法了吗?