js關閉窗口時觸發事件方法


JS監聽關閉瀏覽器事件
關鍵字: js監聽關閉瀏覽器事件
Onunload與Onbeforeunload
Onunload,onbeforeunload都是在刷新或關閉時調用,可以在<script>腳本中通過window.onunload來指定或者在<body>里指定。區別在於onbeforeunload在onunload之前執行,它還可以阻止onunload的執行。

Onbeforeunload也是在頁面刷新或關閉時調用,Onbeforeunload是正要去服務器讀取新的頁面時調用,此時還沒開始讀取;而onunload則已經從服務器上讀到了需要加載的新的頁面,在即將替換掉當前頁面時調用。Onunload是無法阻止頁面的更新和關閉的。而 Onbeforeunload 可以做到。曾經做一個考試系統,涉及到防止用戶半途退出考試(有意或者無意),代碼如下:
Java代碼:

 1 <script type="text/javascript">  
 2 <!--    
 3     window.onbeforeunload = onbeforeunload_handler;  
 4     window.onunload = onunload_handler;  
 5     function onbeforeunload_handler(){  
 6         var warning="確認退出?";          
 7         return warning;  
 8     }  
 9       
10     function onunload_handler(){  
11         var warning="謝謝光臨";  
12         alert(warning);  
13     }  
14 // -->  
15 </script>  
16   
17 <script type="text/javascript">
18 <!--
19 window.onbeforeunload = onbeforeunload_handler;
20 window.onunload = onunload_handler;
21 function onbeforeunload_handler(){
22     var warning="確認退出?";   
23 return warning;
24     }
25    
26 function onunload_handler(){
27     var warning="謝謝光臨";
28     alert(warning);
29     }
30 // -->
31 </script>

Java代碼
這段代碼在FF和IE上都能正確執行.再點擊關閉按鈕時首先觸發obbeforeunload事件,點擊否定時不執行onload事件.

這段代碼在FF和IE上都能正確執行.再點擊關閉按鈕時首先觸發obbeforeunload事件,點擊否定時不執行onload事件.Java代碼
通常應用在 注銷session等等登陸信息 等方面....

通常應用在 注銷session等等登陸信息 等方面....Java代碼
這里一並推薦一個ActionScript3的好教程: <A href="http://gskinner.com/talks/as3workshop/">http://gskinner.com/talks/as3workshop/</A>

這里一並推薦一個ActionScript3的好教程: http://gskinner.com/talks/as3workshop/寫道
運用onunload事件判斷瀏覽器是刷新還是關閉窗口

寫道

 1 function CloseOpen(event) {
 2 if(event.clientX<=0 && event.clientY<0) {
 3 alert("關閉");
 4 }
 5 else
 6 {
 7 alert("刷新或離開");
 8 }
 9 }
10 Java代碼
11 window.onbeforeunload = function() //author: meizz   
12        {   
13               var n = window.event.screenX - window.screenLeft;   
14               var b = n > document.documentElement.scrollWidth-20;   
15               if(b && window.event.clientY < 0 || window.event.altKey)   
16               {   
17                      alert("是關閉而非刷新");   
18                      window.event.returnValue = ""; //這里可以放置你想做的操作代碼   
19               }   
20        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM