瀏覽器關(guān)閉時(shí)彈框提醒

在開發(fā)web應(yīng)用時(shí),有些頁面在用戶關(guān)閉時(shí)可能需要保存用戶的數(shù)據(jù),或者提示用戶防止誤關(guān)

beforeunload 事件

在瀏覽器中我們可以監(jiān)聽beforeunload事件來知道瀏覽器即將關(guān)閉,并且可以通過給Event對(duì)象的returnValue賦值來提示彈框


window.addEventListener("beforeunload", e => {
    e.returnValue = true
})

然后我們刷新瀏覽器或者退出瀏覽器就可以看到彈框了

image
image

用處

通過監(jiān)聽到這個(gè)事件,我們就有機(jī)會(huì)在頁面關(guān)閉前執(zhí)行一段JS,來保存應(yīng)用相關(guān)的數(shù)據(jù)


window.addEventListener("beforeunload", e => {
    //do some things
})

只要是同步的JS就可以完全執(zhí)行,如果需要異步回調(diào),考慮到用戶可能不會(huì)留下,所以異步操作不能完全保證

同時(shí)JS不能占用太多時(shí)間,比如你用一個(gè)超大循環(huán)在哪卡之類的,瀏覽器如果檢測(cè)到JS在一段時(shí)間內(nèi)并沒有正確執(zhí)行,將會(huì)直接關(guān)閉頁面

參考資料

window.onbeforeunload

END

2017-03-10 完成

2017-12-02 立項(xiàng)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容