Firefox忽略显示确认提醒消息
问题描述:
我的页面的表单中包含许多可从用户收集的信息。如果用户尝试关闭此页面,则应显示一个确认框,指出:“您确定要离开此页吗?”。Firefox忽略显示确认提醒消息
$(window).on('beforeunload',function(e){
//alert code
}
一切都好。但在Firefox中,当我使用搜索栏时,Firefox将忽略我的警报并重定向到搜索页面。
有什么建议吗?
答
您可以编写代码这样的事情
$(window).bind('beforeunload', function() {
return 'Your custom message here';
});
不能生成在beforeunload方法定义弹出。
答
当窗口,文档及其资源即将被卸载时,会触发beforeunload
事件。
当一个字符串被分配给returnValue
Event属性时,会出现一个对话框,要求用户确认离开页面。当没有提供值,默默地处理的事件: - 基于WebKit
window.addEventListener("beforeunload", (event) => {
event.returnValue = null;
});
// is equivalent to
window.addEventListener("beforeunload", (event) => {
event.preventDefault();
});
的浏览器可能不遵循规范的对话框。一个几乎跨浏览器的工作示例:
window.addEventListener("beforeunload", (event) => {
const confirmationMessage = "your message";
event.returnValue = confirmationMessage;
return confirmationMessage;
});
注意 此事件时返回一个非空值,系统会提示用户确认页面卸载。在大多数浏览器中,事件的返回值显示在此对话框中。在Firefox 4及更高版本中,返回的字符串不会显示给用户。相反,Firefox会显示它自己的预定义字符串。
自2011年起,HTML5规范规定在此事件期间可能会忽略对window.alert()
,window.confirm()
和window.prompt()
方法的调用。
另请注意,各种移动浏览器忽略事件的结果(也就是说,他们不要求用户确认)。 Firefox在about:config
中有一个隐藏的偏好来做同样的事情。本质上这意味着用户总是确认文件可能被卸载。