使用onbeforeunload屬性后的副作用

這個unbeforeunload的具體用法我就不說了,反正幾乎能引起當(dāng)前頁面發(fā)生跳轉(zhuǎn)的任何動作,都會觸發(fā)這個事件。并且它先于unload事件被觸發(fā),如果在其的事件處理函數(shù)里面向event.returnValue屬性賦值非空字符串,就會出現(xiàn)一個如上圖的窗口(代碼如下)。
window.onbeforeunload = function ()

{
// . . .
event.returnValue = "You will lose any unsaved content";
// . . .
} 至于這個窗口是做什么用的,窗口上系統(tǒng)提示的文字(第1行和第3行)已經(jīng)說的非常清楚了。那么使用這個事件到底有什么問題呢?
我們知道引起當(dāng)前頁面發(fā)生條轉(zhuǎn)主要3類事件:
1、對瀏覽器窗口的操作,比如關(guān)閉瀏覽器、go home、backward、forward和refresh等;
2、對于網(wǎng)頁的Navigatie操作,比如點擊鏈接、在地址欄中執(zhí)行新的地址、頁面表單提交到非當(dāng)前頁面等;
3、腳本代碼引起的頁面Navigate操作,比如執(zhí)行navigate、locatoin方法(replace, reload, assign)和修改location屬性(href, search)等。
以上的1-2類操作引起onbeforeunload的事件,使用起來基本沒有任何的問題,可是執(zhí)行第3類頁面條轉(zhuǎn)操作卻有點小問題。就是在上圖的窗口出現(xiàn)后,如果點選"OK",確實就OK,頁面正確跳轉(zhuǎn)了??墒侨绻@個時候,我們點選"Cancel",卻會出現(xiàn)一個腳本異常,如下圖:

解決方法就是把腳本調(diào)用try一下,但這似乎是IE的一個bug的說。
try

{
//
event.returnValue = "You will lose any unsaved content";
//
}
catch(e)
{}相關(guān)文章
javascript實現(xiàn)省市區(qū)三級聯(lián)動下拉框菜單
這篇文章主要為大家詳細介紹了javascript實現(xiàn)省市區(qū)三級聯(lián)動下拉框菜單很詳細的代碼,解決了大家實現(xiàn)javascript省市區(qū)三級聯(lián)動下拉框菜單的問題,感興趣的小伙伴們可以參考一下2015-11-11
uni-app動態(tài)修改導(dǎo)航欄標(biāo)題簡單步驟
uniapp作為一款開源軟件,可以做到一端多用,不過也有局限,在開發(fā)中有時候需要動態(tài)的去修改標(biāo)題,下面這篇文章主要給大家介紹了關(guān)于uni-app動態(tài)修改導(dǎo)航欄標(biāo)題的相關(guān)資料,需要的朋友可以參考下2023-06-06
JavaScript增加數(shù)組中指定元素的5種方法總結(jié)
在JS中數(shù)組方法是非常重要且常用的的方法,在此整理總結(jié)一番,下面這篇文章主要給大家介紹了關(guān)于JavaScript增加數(shù)組中指定元素的5種方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-02-02
詳解JavaScript中的Object.is()與"==="運算符總結(jié)
這篇文章主要介紹了詳解JavaScript中的Object.is()與"==="運算符總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
js實現(xiàn)鍵盤操作實現(xiàn)div的移動或改變的原理及代碼
實現(xiàn)鍵盤操作實現(xiàn)div的移動,最關(guān)鍵的一點:獲取div對象,下面有個不錯的示例,大家可以參考下2014-06-06
javascript中Array()數(shù)組函數(shù)詳解
在JavaScript中數(shù)組也是比較常用的對象之一,數(shù)組是值的有序集合,本篇文章給大家分享Javascript中Array()數(shù)組函數(shù)詳解,需要的朋友可以參考下2015-08-08
JS插件amCharts實現(xiàn)繪制柱形圖默認顯示數(shù)值功能示例
這篇文章主要介紹了JS插件amCharts實現(xiàn)繪制柱形圖默認顯示數(shù)值功能,結(jié)合實例形式分析了amCharts插件繪制柱形圖并顯示數(shù)值的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11

