在Firefox ,我可以写一个自定义的确认弹出有:火狐4 onBeforeUnload自定义消息
window.onbeforeunload = function() {
if (someCondition) {
return 'Your stream will be turned off';
}
}
现在在Firefox ,它不显示我的自定义消息。它提供的默认消息对于我的应用程序所做的甚至不准确。
可以这样默认的消息被重写?
在Firefox ,我可以写一个自定义的确认弹出有:火狐4 onBeforeUnload自定义消息
window.onbeforeunload = function() {
if (someCondition) {
return 'Your stream will be turned off';
}
}
现在在Firefox ,它不显示我的自定义消息。它提供的默认消息对于我的应用程序所做的甚至不准确。
可以这样默认的消息被重写?
从MDN:
注意,在Firefox 4及更高版本返回的字符串不会显示给用户。请参阅错误588292。
这个“错误”,实际上是(恕我直言可疑的)功能..所以没有办法,如果你认为它应该改变,对错误意见,因此Firefox开发会知道显示在Firefox 4的消息人们实际上希望能够显示自定义字符串。
这可以用于善与恶。 ** GOOD **:警告某人您的网络广播将被关闭,未保存的更改,** ** BAD **:反转心理的病毒网站:“单击取消不安装病毒”。 – JoJo 2011-03-22 23:05:18
这绝对是一个功能。与留下输入数据的页面相关的问题是普遍的。我不需要更积极的警告,因为99%的此类信息令人讨厌或误导。你的应用并不特殊。 – 2011-03-23 02:10:31
那么,例如,我的webradio有一个flash播放器,当它运行时,我显示“如果关闭此页面,流将停止播放”消息。这与“您可能会丢失数据”完全不同。 – ThiefMaster 2011-03-23 07:08:00
尝试用一个确认消息实现它,
window.onbeforeunload=function(){
return confirm("Are you sure??");
}
当然
当用户确认,然后显示在FF4消息, 所以你也许更好的显示这个每一次登录时/访问网站。 一个cookie应该做的伎俩。
即使用户对“您确定吗?”拒绝吗?对话框,它不会阻止显示FF4消息,或者页面试图卸载。 – pkaeding 2011-05-15 00:41:38
是的,但是这可以让你给用户一个消息,至少在这个Bug被修复之前,我建议提醒一下,但是看起来卸载并不显示任何确认问题 – Jguru 2011-05-16 07:24:56
根据HTML5规范呼叫提示,提醒,确认等可能被忽略。就我而言,确认无效。 – IntelliData 2015-09-10 16:38:15
我的解决方法是在onbeforeunload来显示警报:
window.onbeforeunload=function() {
if (/Firefox[\/\s](\d+)/.test(navigator.userAgent) && new Number(RegExp.$1) >= 4) {
alert("Blah blah. You have to confirm you are leaving this page in the next dialogue.");
}
return "Blah blah.";
}
(它显示在Firefox两次对话,其他地方的一个对话。)
除上述回答,我提高了解决方法。
我在这里使用了jquery。你也可以使用默认的javascript功能。
$(window).bind('beforeunload', function() {
if(/Firefox[\/\s](\d+)/.test(navigator.userAgent) && new Number(RegExp.$1) >= 4) {
if(confirm("Are you Sure do you want to leave?")) {
history.go();
} else {
window.setTimeout(function() {
window.stop();
}, 1);
}
} else {
return "Are you Sure do you want to leave?";
}
});
测试并在firefox 11中工作。 :)
好的解决方案.. – 2012-08-14 13:29:17
@Nasif,首先是优秀的代码。但你的 window.setTimeout(function(){window.stop();},1);当你点击Firefox的x关闭按钮时, 不起作用。 而“离开窗口”的默认弹出确实工作。 – user367134 2012-09-06 13:39:35
是的上面的代码是为页面离开,而不是窗口关闭谢谢。 – Nasif 2012-12-31 08:24:18
可能重复的[crossbrowser onbeforeunload?](http://stackoverflow.com/questions/7389554/crossbrowser-onbeforeunload) – Aelios 2014-05-13 08:22:03