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 破繭而出 閱讀(2657) 評論(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???  回復  更多評論
            
          主站蜘蛛池模板: 远安县| 招远市| 武山县| 满洲里市| 武安市| 班玛县| 福安市| 绥中县| 百色市| 苏州市| 肥城市| 施秉县| 斗六市| 蒙城县| 莱西市| 神木县| 高淳县| 余江县| 汝阳县| 太康县| 南丰县| 苍山县| 奉新县| 游戏| 永济市| 定州市| 甘肃省| 个旧市| 通城县| 安图县| 密山市| 昆明市| 博兴县| 佛教| 浮梁县| 乃东县| 淮北市| 咸宁市| 彝良县| 深州市| 青州市|