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 破繭而出 閱讀(2656) 評論(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???  回復  更多評論
            
          主站蜘蛛池模板: 池州市| 郎溪县| 岑巩县| 于都县| 剑河县| 呼图壁县| 旌德县| 安塞县| 嘉峪关市| 杭锦旗| 怀仁县| 德钦县| 那坡县| 东台市| 甘德县| 芦山县| 永丰县| 湟源县| 绍兴市| 红原县| 新丰县| 吴忠市| 南昌市| 吉隆县| 阿坝| 乐平市| 横峰县| 双柏县| 庆城县| 景宁| 丹阳市| 崇仁县| 封开县| 临朐县| 兴国县| 成安县| 泾源县| 镇雄县| 蒙山县| 黄冈市| 三门县|