2014-11-24 33 views
0

我正在使用web套接字連接進行通信。但是當用戶刷新頁面時,我想關閉這個web套接字連接。 我也用window.onbeforeunload活動,顯示確認對話框與定製text.IF用戶用戶選擇「不加載」選項,然後不採取行動(這是工作的罰款) 但我想關閉網絡套接字連接,如果用戶選擇重新加載選項。我知道如何做到這一點。我試圖調用window.unload並嘗試關閉Web套接字連接,但它不工作.Mu代碼如下。如何調用window.unload

window.onbeforeunload = function(e) { 
    return "you are closing this web page'; 
}; 


window.unload = function(e) { 
    webSockect.closeConnection(); 
}; 

請教如何做到這一點。

回答

0

窗口事件的前綴爲on

嘗試使用window.onunload = ...甚至更​​好

window.addEventListener('unload', ...)

當使用addEventListener您指定的事件名稱,而不on前綴。

瞭解更多:WindowEventHandlers.onunload

0

首先,有在上面的代碼中的語法錯誤,你寫的:

window.onbeforeunload = function(e) { 
    return "you are closing this web page'; 
}; 

所以,行情的類型,應該是單或雙,在字符串的開始和結束時相同。

它應該是,它會工作:

window.onbeforeunload = function(e) { 
    return "you are closing this web page"; 
}; 

====

回到點。您可以使用卸載提示進行的操作是更改消息。否則任何不工作,如:

  • 上的按鈕更改操作上的提示
  • 更改的提示
  • 更改框

Q的UI甚至按鈕文本如果函數return之前寫了一些東西,那麼瀏覽器將忽略它。

+1

Window.unload功能並不被所有瀏覽器都支持,所以onBeforeUnload性能較好。 此外,當該功能被觸發,你可以找到事件的列表:[OnBeforeUnload - 事件列表(http://stackoverflow.com/questions/138411/catching-a-tab-close-event-in-web-browser) – Rajesh 2014-11-25 12:19:07

0

如果分配的方法給一個變量,然後返回變量可以實際上運行在接近的方法。

function unloadWebSocket() 
{ 
    webSockect.closeConnection(); 
} 

window.onbeforeunload = function(e) 
{ 
    var x = unloadWebSocket(); 
    return x; 
}; 

雖然我沒有使用websockets的經驗,但我知道這適用於同步ajax請求。