2016-04-05 23 views
0

當我重新加載我的頁面時,我想使用Impromptu提醒框作爲確認框。 現在我正在使用這個正常的JavaScript。如何使用Impromptu作爲確認提醒

window.onbeforeunload = function(event) { 
    return confirm("Confirm refresh"); 
}; 

但是我不再想使用這個,所以有沒有任何機會加載頁面重裝上的Impromptu確認框?

在此先感謝

回答

0

簡答:沒有。

長答案: Javascript無法等待(或之前)卸載時的回調。如果事件返​​回,頁面將卸載。考慮到這一點,自定義確認框總是需要等待用戶交互,並且這不會被阻止。所以Impromptu(或其他任何插件)無法阻止頁面卸載。原生函數(例如alert,confirm,甚至是XMLHttpRequest等)有一些例外情況,那些可以或可以被阻塞,因此它們可以在pageunload上執行。

The Mozilla docs告訴我們,現代瀏覽器甚至會阻止在window.onbeforeunload中創建對話框。如果我在Chrome測試功能,它創建了一個對話框:

確認導航

您確定要離開這個頁面?

你能做的最好的是一樣的東西:

window.onbeforeunload = function() { 
    return "There is more to see on this site!"; 
}; 

這將創建一個盒狀:

確認導航

有更多的看到此網站!

您確定要離開本頁面嗎?

您可以在頁面重新加載時執行某些操作的唯一方法是在頁面重新加載後,因此在新請求的頁面上。

注意:我非常不喜歡使用onbeforeunload事件,這會給用戶帶來一個額外的彈出窗口,在關閉頁面之前必須單擊它們。當網站向我這樣做時,我真的不喜歡它,它感覺像垃圾郵件。