ホームページ >ウェブフロントエンド >jsチュートリアル >フォームの送信を妨害せずにブラウザ ウィンドウの終了を検出するにはどうすればよいですか?
フォーム送信インターセプトなしでブラウザ ウィンドウを閉じるイベントをキャプチャする
フォーム送信との競合を避けてブラウザ ウィンドウを閉じるイベントを具体的にキャプチャするには、jQuery の beforeunloadイベントはわずかな変更で悪用できます。
beforeunload イベントは、は、ページの放棄を引き起こすあらゆるアクションのトリガーになります。ウィンドウを閉じるイベントのみに制限するために、次のアプローチを採用します。
beforeunload イベント ハンドラーで、inFormOrLink の値を確認します。
jQuery バージョン 1.7 および 1.7 の更新されたコードそれ以降:
var inFormOrLink; $('a').on('click', function() { inFormOrLink = true; }); $('form').on('submit', function() { inFormOrLink = true; }); $(window).on("beforeunload", function() { return inFormOrLink ? "Do you really want to close?" : null; })
jQuery の古いバージョン (1.7 より前):
var inFormOrLink; $('a').live('click', function() { inFormOrLink = true; }); $('form').bind('submit', function() { inFormOrLink = true; }); $(window).bind("beforeunload", function() { return inFormOrLink ? "Do you really want to close?" : null; })
以上がフォームの送信を妨害せずにブラウザ ウィンドウの終了を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。