Onunload與Onbeforeunload

Onunload,onbeforeunload都是在刷新或關閉時調用,可以在<script>腳本中通過window.onunload來指定或者在<body>裏指定。區別在於onbeforeunload在onunload之前執行,它還可以阻止onunload的執行。

    Onbeforeunload也是在頁面刷新或關閉時調用,Onbeforeunload是正要去服務器讀取新的頁面時調用,此時還沒開始讀取;而onunload則已經從服務器上讀到了需要加載的新的頁面,在即將替換掉當前頁面時調用。Onunload是無法阻止頁面的更新和關閉的。而 Onbeforeunload 可以做到。曾經做一個考試系統,涉及到防止用戶半途退出考試(有意或者無意),代碼如下:
<body onbeforeunload=" checkLeave()">
<script>
function checkLeave(){
    event.returnValue
="確定放棄考試?(考試作廢,不記錄成績)";
}
</script>

這樣可以讓用戶確認是否要退出考場,其實BLOGJAVA在用戶編寫BLOG時,如果不保存而跳轉到其他頁面,也會有一個確認的提示(防止誤操作),也是用到Onbeforeunload。

   另外還可以用來在頁面關閉的時候關閉session,代碼如下(注:用window.screenLeft > 10000 來區分關閉和刷新操作):

<body onbeforeunload=" closeSession()">
<script>
function closeSession (){
    
//關閉(刷新的時候不關閉Session)
    if(window.screenLeft>10000){
       
//關閉Session的操作(可以運用AJAX)
    }
}
</script> 
發佈了18 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章