2016-07-22 39 views
-2

我的頁面的表單中包含許多可從用戶收集的信息。如果用戶嘗試關閉此頁面,則應顯示一個確認框,指出:「您確定要離開此頁嗎?」。Firefox忽略顯示確認提醒消息

$(window).on('beforeunload',function(e){ 
    //alert code 
} 

一切都好。但在Firefox中,當我使用搜索欄時,Firefox將忽略我的警報並重定向到搜索頁面。

有什麼建議嗎?

回答

0

您可以編寫代碼這樣的事情

$(window).bind('beforeunload', function() { 
    return 'Your custom message here'; 
}); 

不能生成在beforeunload方法定義彈出。

1

當窗口,文檔及其資源即將被卸載時,會觸發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中有一個隱藏的偏好來做同樣的事情。本質上這意味着用戶總是確認文件可能被卸載。