我的頁面的表單中包含許多可從用戶收集的信息。如果用戶嘗試關閉此頁面,則應顯示一個確認框,指出:「您確定要離開此頁嗎?」。Firefox忽略顯示確認提醒消息
$(window).on('beforeunload',function(e){
//alert code
}
一切都好。但在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
中有一個隱藏的偏好來做同樣的事情。本質上這意味着用戶總是確認文件可能被卸載。