2010-10-15 49 views
2

HI對瀏覽器的卸載事件

我想從客戶端頁面超時會話,我想下面的代碼,但不能執行的代碼需要,我可以如何處理好一些幫助或用戶取消事件

<script> 

function onBeforeUnloadAction(){ 

    return "Would u like to discard Changes"; 

} 

window.onbeforeunload = function(){ 
    if((window.event.clientX<0) || 
     (window.event.clientY<0)) 
{ 
    return onBeforeUnloadAction(); 

    } 
} 

</script> 
+0

需要更多的工作...有公共頁面可用嗎? – Ben 2010-10-15 06:32:38

回答

1

onbeforeunload必須返回一個字符串,瀏覽器從該字符串中創建確認框。如果你想捕捉的是,用戶沒有離開(您不能運行任何東西,如果用戶離開,那只是它是如何),只需設置一個計時器,看看它是否火災:

window.onbeforeunload = function(){ 
    setTimeout(function(){ 
     //User didnt leave 
     goDoFunStuff(); 
    },500); 
    return 'wanna go?' 
} 

由於onbeforeunload阻止定時器只會在用戶沒有離開時觸發

2

beforeunload event只能用於向用戶顯示一個對話框,用戶將要離開當前頁面。這個對話框是瀏覽器控制的,你只能自定義對話框的警告,而不是結果。因此,您不能根據對話結果執行操作。這主要是出於安全原因,以防止人們被迫停留在當前頁面上。

如果你想清理的人後的任何會話數據離開當前頁面,你應該考慮使用這些替代結構的一個(或幾個):

  1. Inplement自己的「後退」或「取消」按鈕,您可以處理該按鈕以顯示自己的對話框並執行清理。
  2. 每個會話記錄服務器請求,並對那些未在特定時間間隔內發出請求的會話執行清理。
  3. 執行舊會話的日常清理,最好是在低訪問時間。