0

我正在使用 Web 套接字连接进行通信。但是当用户刷新页面时,我想关闭这个网络套接字连接。我还使用window.onbeforeunload事件向用户显示自定义文本的确认框。如果用户选择“不重新加载”选项,则无操作(工作正常)但如果用户选择重新加载选项,我想关闭 Web 套接字连接。我不知道如何实现这一点。我试图打电话window.unload并试图关闭网络套接字连接,但它不起作用。我的代码如下。

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

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

请告知如何实现这一目标。

4

3 回答 3

0

首先,上面的代码有语法错误,你写的是:

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

因此,引号的类型应该是单引号或双引号,在字符串的开头和结尾处相同。

它应该是,它将起作用:

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

====

回到正题。卸载提示所能做的就是更改消息。否则任何东西都不起作用:

  • 在提示上更改按钮上的操作
  • 更改提示的按钮文本
  • 更改盒子的 UI

Q. 即使你在returnif函数之前写了一些东西,也会被浏览器忽略。

于 2014-11-25T12:07:44.153 回答
0

窗口事件以on.

尝试使用window.onunload = ...甚至更好

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

使用时指定不带前缀addEventListener的事件名称。on

阅读更多:WindowEventHandlers.onunload

于 2014-11-24T11:26:32.843 回答
0

如果您将方法分配给变量然后返回变量,您实际上可以在关闭时运行方法。

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

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

虽然我没有使用 websockets 的经验,但我知道这适用于同步 ajax 请求。

于 2016-02-24T09:47:34.043 回答