2014-07-14 16 views
1

在Html頁面,當我關閉瀏覽器我顯示使用如何獲得的原因onUnloadEvent得到觸發

window.onbeforeunload = confirmClose; 
       function confirmClose(event){} 

消息,但被越來越觸發以下條件也
http://msdn.microsoft.com/en-in/library/ie/ms536973%28v=vs.85%29.aspx

同一事件
  • 關閉當前窗口。
  • 通過輸入新地址或選擇收藏夾導航到其他位置。
  • 單擊後退,前進,刷新或主頁按鈕。
  • 單擊一個將瀏覽器引用到另一個文檔的錨點。
  • 調用anchor.click方法。
  • 調用document.write方法。
  • 調用document.open方法。
  • 調用document.close方法。
  • 調用window.close方法。
  • 調用window.open方法,爲窗口名稱提供可能的值_self。
  • 調用window.navigate或NavigateAndFind方法。
  • 調用location.replace方法。
  • 調用location.reload方法。
  • 爲location.href屬性指定一個新值。
  • 通過INPUT type = submit控件將表單提交到ACTION屬性中指定的地址,或者調用form.submit方法。

我怎樣才能得到觸發該方法的原因是什麼?

回答

2

不,一般你不能。最接近的是,如果觸發關閉事件的動作也會觸發另一個事件,例如點擊鏈接,那麼您可以捕獲該事件並設置一個標誌。例如,點擊鏈接(使用jQuery):

var linkHasBeenClicked = false; 

$('a').click(function() { 
    linkHasBeenClicked = true; 
}); 

function confirmClose(event){ 
    if (linkHasBeenClicked) { 
    // ... 
    } else { 
    // ... 
    } 
    linkHasBeenClicked = false; 
}