Firefox忽略显示确认提醒消息

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中有一个隐藏的偏好来做同样的事情。本质上这意味着用户总是确认文件可能被卸载。