2014-11-24 29 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请求。