2014-10-03 44 views
0

在網頁中,如果用戶要關閉頁面,我希望結束與數據傳輸服務的連接。斷開連接的代碼存在,並且在按鈕單擊時工作得非常好,但是當我嘗試使用onbeforeunload觸發該功能時,它不起作用。我已經onbeforeunload在頁面關閉前顯示文本,但不會觸發我的功能。在頭我試圖斷開代碼只是內容如下:在在HTML文件中引用外部.js文件window.unbeforeunload無法在外部.js文件中觸發函數

<script> 

    window.onbeforeunload = disconnect(); 
// doesnt like the idea of working 
</script> 

的斷開功能存在。我無法理解爲什麼在關閉文檔之前它不會觸發此功能。任何幫助,將不勝感激。

回答

2

試試這個:

window.onbeforeunload = disconnect; 

爲了引用一個函數另一個變量/屬性,你必須分配函數體本身,你可以通過調用只函數名,例如訪問disconnect(在您的控制檯上鍵入它,您將擁有該功能正文)。

當您嘗試將函數分配給()時,您正在執行此操作,並在賦值時指定其返回值,因此事件將嘗試在觸發時評估其返回值,而不是功能本身。

我希望這很清楚。

1

在您的示例中,當您分配事件處理程序時,您正在執行斷開連接。

它應該是:

window.onbeforeunload = disconnect; 
+0

任何從我的答案有什麼不同? – DontVoteMeDown 2014-10-03 13:55:53

+0

不,我剛剛沒有看到你的回答 – dannydk 2014-10-03 14:01:13

+0

仍然沒有工作,沒有改變的結果。 – 2014-10-03 14:07:57