posts - 108,comments - 56,trackbacks - 0

              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> 
          posted on 2007-05-30 16:18 破繭而出 閱讀(2659) 評論(3)  編輯  收藏 所屬分類: JavaScript

          FeedBack:
          # re: Onunload與Onbeforeunload
          2007-08-06 17:32 | 山水郎
          呵呵,多謝了
          找了小半天了,總算找到禁用關閉的方法了
            回復  更多評論
            
          # re: Onunload與Onbeforeunload
          2007-09-07 09:19 | 阿里巴巴
          不錯。 非常實用  回復  更多評論
            
          # re: Onunload與Onbeforeunload
          2007-09-07 17:53 | leeight
          window.screenLeft???  回復  更多評論
            
          主站蜘蛛池模板: 修武县| 封丘县| 寻乌县| 库尔勒市| 伊吾县| 明溪县| 商洛市| 专栏| 句容市| 措勤县| 镇远县| 武强县| 门头沟区| 武川县| 灵璧县| 双辽市| 灯塔市| 土默特右旗| 自治县| 灵宝市| 乐安县| 万安县| 客服| 凤翔县| 建始县| 姜堰市| 喀什市| 明光市| 南宫市| 增城市| 安平县| 咸宁市| 蒲城县| 深州市| 攀枝花市| 宽城| 二连浩特市| 汨罗市| 聂拉木县| 馆陶县| 沁水县|