
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)
{}新聞熱點
疑難解答