ユーザーがjQueryを使用して特定のページを放棄しているときにアクションメソッドを実行したい。
このページには次のコードがあります。
<script type="text/javascript">
$(window).unload(function () {
alert("Handler for .unload() was called.");
});
</script>
ページから移動すると、予想されるアラートが表示されません。
実際、Googleのような一部のブラウザChromeは、ウィンドウalert
でunload
を試みるとブロックされる可能性があります。ユーザーとしては、この機能が気に入っています。ページから離れて移動するのは面倒です:
アラートをconsole.log
またはユーザーの邪魔にならないものに置き換えると、イベントが喜んで呼び出されます。
onbeforeunload イベントをチェックアウトすることもできます。
jquery .on( 'unload'、..);私のために働くことは信頼できませんでした。 beforeunloadを使用するように切り替えました。何も返さないことを確認してください。そうしないと、ユーザーに「ページを離れてもよろしいですか」ポップアップが表示されます。
<script type='text/javascript'>
$(window).on('beforeunload', function(){
console.log("beforeUnload event!");
});
</script>
ヘルムが言ったように アンロード前 私にも役立ちます。
このイベントでfalseを返すと、ブラウザのデフォルトが呼び出されます
このページから移動してもよろしいですか?
$(window).on('beforeunload', function ()
{
return false;
});
このページを離れたことをユーザーに警告する場合は、
/* $(window).unload(function()
{
//alert("you leaving this page");
console.log("you leaving this page");
}); */
関数が機能しない場合、コードを次のようにon( "beforeunload"、function)に置き換えます
$(window).on("beforeunload", function()
{
alert("you leaving this page");
console.log("you leaving this page");
});
私のこの仕事!コンソールログで出力を確認できます このページから移動します
window.onbeforeunload=navigationError;
var dont_confirm_leave = 0; var leave_message = 'You sure you want to leave?';
function navigationError(e)
{
if(dont_confirm_leave!==1)
{
if(!e) e = window.event;
//e.cancelBubble is supported by IE - this will kill the bubbling process.
e.cancelBubble = true;
e.returnValue = leave_message;
//e.stopPropagation works in Firefox.
if (e.stopPropagation)
{
e.stopPropagation();
e.preventDefault();
}
//return works for Chrome and Safari
return leave_message;
}
}