簡體   English   中英

如何使用即興警報作為確認警報

[英]How to use Impromptu as an confirm alert

我想在重新加載頁面時使用即興警報框作為確認框。 現在,我正在使用這個普通的javascript。

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

但是我不再想要使用此功能,因此是否有機會在頁面重新加載時加載Impromptu確認框?

提前致謝

簡短的回答:不。

長答案:Javascript不可能等待卸載之前(或之前)的回調。 如果事件返​​回,頁面將被卸載。 考慮到這一點,自定義確認框將始終需要等待用戶交互,並且不會阻塞。 因此Impromptu(或與此相關的任何其他插件)將無法阻止該頁面的卸載。 本機函數(例如alert,confirm甚至XMLHttpRequest ...)有一個例外,這些例外是或可以阻止的,因此可以在pageunload上執行。

Mozilla文檔告訴我們,現代瀏覽器甚至阻止在window.onbeforeunload創建對話框。 如果我在chrome中測試您的功能,則會創建一個對話框:

確認導航

您確定要離開此頁面嗎?

您可以做的最好的事情是:

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

這將創建一個類似以下的框:

確認導航

在這個網站上還有更多值得一看的地方!

您確定要離開此頁面嗎?

在頁面重新加載上執行操作的唯一方法是在頁面重新加載之后,即在新請求的頁面上。

注意:我強烈不鼓勵使用onbeforeunload事件,這會給您的用戶帶來麻煩,因為他們在關閉頁面之前必須單擊額外的彈出窗口。 當網站對我這樣做時,我真的不喜歡它,就像垃圾郵件一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM