iT邦幫忙

0

jq window重整問題

想請問

$(window).on('beforeunload', function);

我想在重整監聽事件過程中,執行跳轉到某一個畫面,目前已有在function中建立

e.preventDefault();
window.location='url'

但還是無法再重整前執行到跳轉。
p.s:因為手機上沒有F5所以無法用KEYCODE來處理,還是說我必須拆成電腦的與手機的兩個FUNCTION來去執行??希望各位可以給我一點意見謝謝大家。

看更多先前的討論...收起先前的討論...
https://developers.google.com/web/updates/2017/03/dialogs-policy?hl=zh-tw
kekeke iT邦新手 4 級 ‧ 2020-11-11 08:45:57 檢舉
謝謝~
試了unload跟beforeunload都不行,一律秀出Blocked beforeunload的訊息,跑了幾個網站看,都是說因為安全問題(瀏覽器綁架)已經將這個功能強制取銷了,就算你在執行期間修改這個事件都不行
kekeke iT邦新手 4 級 ‧ 2020-11-11 10:39:56 檢舉
了解~我也測了幾個都不行,昏........,謝謝大大~

1 個回答

3
㊣浩瀚星空㊣
iT邦超人 1 級 ‧ 2020-11-11 09:28:03
最佳解答

unload 事件。在目前本機安全性原則及瀏覽器自主權的情況下。
已經有很多瀏覽器不容許這個事件或是事件有限化處理。
其實你的導頁,也正好就是它們的限制之一。

也就是說,「重整」這樣的動作。現在都是不容許停止的。
一般會用keyCode的方式。其實目的就是要搶在重整觸發前停止該控制。
畢竟鍵盤觸發的事件會優先運行。可以將控制鍵給改掉會停止。
不過我相信早晚也會被改掉的。

基本上是建議你不要再想從unload下手。
改成由load下手。
可以預設一個值會讓重整消失的值。判斷值消失就做導頁的動作。
並加一個頁面緩載入的動作。一樣可以達到你要的效果。

kekeke iT邦新手 4 級 ‧ 2020-11-11 10:38:42 檢舉

謝謝星空大的解釋,目前我也是怕日後keycode的方式會被改掉,謝謝建議~~

我要發表回答

立即登入回答