ホームページ >ウェブフロントエンド >jsチュートリアル >フォームの送信を妨害せずにブラウザ ウィンドウの終了を検出するにはどうすればよいですか?

フォームの送信を妨害せずにブラウザ ウィンドウの終了を検出するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-13 22:40:14325ブラウズ

How Can I Detect Browser Window Closure Without Intercepting Form Submissions?

フォーム送信インターセプトなしでブラウザ ウィンドウを閉じるイベントをキャプチャする

フォーム送信との競合を避けてブラウザ ウィンドウを閉じるイベントを具体的にキャプチャするには、jQuery の beforeunloadイベントはわずかな変更で悪用できます。

beforeunload イベントは、は、ページの放棄を引き起こすあらゆるアクションのトリガーになります。ウィンドウを閉じるイベントのみに制限するために、次のアプローチを採用します。

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。