2011-06-01 27 views
35

在移動Safari瀏覽器中是否有替代方法來代替onbeforeunload?我注意到Google能夠捕獲移動Safari中的onbeforeunload事件。有沒有人知道他們是怎麼做到的?在手機safari中是否有另外一種方法可以使用onbeforeunload?

谷歌能夠使用他們的Gmail客戶端。創建一個新消息...在文本區域輸入內容...點擊瀏覽器後退按鈕。它彈出一條警告消息。我用iPad做了我的測試。

+0

同時存在onunload的和onbeforeunload你能澄清你要完成什麼? – Steve 2011-07-07 00:44:38

+11

移動Safari瀏覽器似乎沒有onbeforeunload。至於谷歌如何在gmail中模擬它,他們似乎使用iframes的onunload確認技巧。請參閱danny armstrong的答案在這裏:http://stackoverflow.com/questions/3239834/window-onbeforeunload-not-working-on- ipad我認爲當你點擊後退按鈕時,頁面可能會實際上卸載,並且之前的gmail頁面會從那裏無縫地啓動。嘗試複製gmail中的回覆URL,轉到不相關的域,轉到複製的URL,在消息中鍵入內容,然後嘗試返回..確認無法啓動! – Amalgovinus 2011-08-03 21:38:12

+1

另請參見[window.onbeforeunload不工作在iPad?](http://stackoverflow.com/questions/3239834/window-onbeforeunload-not-working-on-the-ipad) – 2013-08-07 12:26:27

回答

5

我猜他們正在使用歷史API。通過聽popstate

window.addEventListener("popstate", function(e) { ... }); 

你可以在做任何愚蠢的事情之前顯示警告。

+0

嗨,這似乎不工作:window.addEventListener(「 popstate「,函數(e){alert(」hi「)});不會在ipad上簽名。我看到這個答案是5年前(!),但! – user2808054 2016-04-14 14:20:51

1

使用pagehide事件(reference

+0

頁面隱藏doens't不允許你添加一個確認彈出窗口,這是什麼原始quesiton是關於(對不起!) – user2808054 2016-04-14 14:11:34

+0

在你downvote之前閱讀的問題:「是否有一種替代方法來代替onbeforeunload在移動Safari瀏覽器?」。該對話只是一個例子來測試它。 – artkoenig 2016-04-14 15:06:58

相關問題