jQueryですべてのブラウザのウィンドウ クローズ イベントのみを検出する最良の方法を教えてください。
Xブラウザのボタンをクリックすることを意味しますが、フォーム
の送信やリンクwindow.close()
を意味するものではありません。多くのスレッドを探していましたが、まだ正しい方法が見つかりません。F5window.location
jQueryですべてのブラウザのウィンドウ クローズ イベントのみを検出する最良の方法を教えてください。
Xブラウザのボタンをクリックすることを意味しますが、フォーム
の送信やリンクwindow.close()
を意味するものではありません。多くのスレッドを探していましたが、まだ正しい方法が見つかりません。F5window.location
以下を使用できます。
$(window).unload(function() {
//do something
}
Unload() は jQuery バージョン 1.8 で非推奨になったため、jQuery > 1.8 を使用する場合は、代わりに beforeunload を使用できます。
beforeunload イベントは、ユーザーが何らかの理由でページを離れるたびに発生します。
$(window).on("beforeunload", function() {
return confirm("Do you really want to close?");
})
unload() メソッドは、jQuery バージョン 1.8 で廃止されました。
1.8より古いバージョンを使用している場合
次に使用します-
$(window).unload(function(){
alert("Goodbye!");
});
1.8以降を使用している場合
次に使用します-
window.onbeforeunload = function() {
return "Bye now!";
};
これがうまくいくことを願っています:-)
ブラウザのクローズ イベントをキャプチャするための特定のイベントはありません。しかし、ブラウザーの位置 XY によって検出できます。
<script type="text/javascript">
$(document).ready(function() {
$(document).mousemove(function(e) {
if(e.pageY <= 5)
{
//this condition would occur when the user brings their cursor on address bar
//do something here
}
});
});
</script>
mousemove と window.onbeforeunload イベントを組み合わせます:- 監査テーブルの TimeOut を設定するために使用しました。
$(document).ready(function () {
var checkCloseX = 0;
$(document).mousemove(function (e) {
if (e.pageY <= 5) {
checkCloseX = 1;
}
else { checkCloseX = 0; }
});
window.onbeforeunload = function (event) {
if (event) {
if (checkCloseX == 1) {
//alert('1111');
$.ajax({
type: "GET",
url: "Account/SetAuditHeaderTimeOut",
dataType: "json",
success: function (result) {
if (result != null) {
}
}
});
}
}
};
});