0

通信には Web ソケット接続を使用しています。しかし、ユーザーがページを更新すると、この Web ソケット接続を閉じたいと思います。また、window.onbeforeunloadイベントを使用して、カスタマイズされたテキストで確認ボックスをユーザーに表示します。ユーザーが「再読み込みしない」オプションを選択した場合、アクションはありません (正常に動作しています)。ただし、ユーザーが再読み込みオプションを選択した場合は、Web ソケット接続を閉じたいと思います。これを達成する方法がわかりません。呼び出しwindow.unloadて、Web ソケット接続を閉じようとしましたが、機能しません。私のコードは次のとおりです。

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を変更する

returnQ. if関数の前に何か書いてもブラウザに無視されてしまいます。

于 2014-11-25T12:07:44.153 に答える
0

メソッドを変数に割り当ててから変数を返すと、実際にはクローズ時にメソッドを実行できます。

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

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

私は websocket の経験はありませんが、これが同期 ajax リクエストで機能することは知っています。

于 2016-02-24T09:47:34.043 に答える
0

ウィンドウ イベントの先頭にはon.

window.onunload = ...使用してみてください。

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

使用する場合は、プレフィックスaddEventListenerなしでイベント名を指定します。on

続きを読む: WindowEventHandlers.onunload

于 2014-11-24T11:26:32.843 に答える