2012-06-18 26 views
2

我有這個功能window.onbeforeunload關閉窗口僅運行時沒有對刷新

window.onbeforeunload = function() {   
      return "Are you sure?";   
    }; 

,我有一個按鈕,當用戶按下它的窗口刷新更新屏幕值,並做一些數據庫調用。我在該函數的開頭添加了window.onbeforeunload=null;以禁用onbeforeunload,但仍保持被調用狀態。

有沒有辦法在我的按鈕onclick函數禁用onbeforeunload函數或使window.onbeforeunload僅在關閉窗口上調用而不是刷新?

+0

你想要什麼? –

+0

@SheikhHeera或者在我的按鈕onclick函數中禁用onbeforeunload函數,或者讓window.onbeforeunload只在關閉窗口中調用而不是刷新 – raym0nd

+0

試試這個http://jsfiddle.net/heera/FKNkn/5/ –

回答

5

下面的代碼應該工作(應保持頭部標籤內的腳本標籤之間)

window.onload=function(){ 

    window.onbeforeunload = function(){   
     return "Are you sure?";   
    } 

    document.getElementById('refresh').onclick=function(){ 
     window.onbeforeunload = null; 
     window.location.reload(); // replace with your code 
    } 
}​ 

WORKING DEMO.

1

另一種方法是使用Cookie。將cookie設置爲一個標誌,因爲您不需要進行onbeforeunload函數調用即可刷新頁面。

window.onbeforeunload = function (e) { 
...  
    canceled = getCookie("canceled"); 
     if (canceled == "false" || canceled == undefined) 
      {//do ur stuff here 
      } 
... 
} 

並將您的Cookie設置爲5秒,以便在您重新加載頁面後立即過期。

+0

如何將coockie設置爲5秒? –