8

ユーザーがページの再読み込み/ブラウザの終了/ページの終了を選択する前に機能を実行する方法はありますか?

私が書こうとしている「オンライン/オフライン」ステータス機能にこれが必要です。ユーザーがまだページにいるかどうかを検出したい。

何か案は?:)

たぶん、これに対するより良いアプローチがありますか?

4

3 に答える 3

22

インライン関数:

window.onbeforeunload = function(evt) {

    // Cancel the event (if necessary)
    evt.preventDefault();

    // Google Chrome requires returnValue to be set
    evt.returnValue = '';

    return null;
};

またはイベントリスナー経由(推奨):

window.addEventListener("beforeunload", function(evt) {

    // Cancel the event (if necessary)
    evt.preventDefault();

    // Google Chrome requires returnValue to be set
    evt.returnValue = '';

    return null;
});

またはjQueryがある場合:

$(window).on("beforeunload", function(evt) {

    // Cancel the event (if necessary)
    evt.preventDefault();

    // Google Chrome requires returnValue to be set
    evt.returnValue = '';

    return null;
});

ノート:

このイベントがvoid以外の値を返すと、ユーザーはページのアンロードを確認するように求められます。ほとんどのブラウザでは、イベントの戻り値がこのダイアログに表示されます。

2011年5月25日以降、HTML5仕様では、window.showModalDialog()、window.alert()、window.confirm()、およびwindow.prompt()メソッドの呼び出しはこのイベント中に無視される可能性があると規定されています。

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunloadのドキュメントを参照してください

于 2013-02-07T08:40:15.903 に答える
0

window.onbeforeunloadを使用します。これは、ユーザーがページを離れたときにトリガーされます:http: //geekswithblogs.net/hmloo/archive/2012/02/15/use-window.onbeforeunload-event-to-stop-browser-from-closing-または-disable.aspx

于 2013-02-07T08:42:04.703 に答える
0

これを試して:

$( window ).unload(function() {
  alert( "Handler for .unload() called." );
});

または、コンフォメーションアラートが必要な場合はこれ

<script>
window.onbeforeunload = function(e) {  
   return 'Your dialog message';
};
</script>
于 2014-04-15T07:59:41.827 に答える