1. ホーム
  2. javascript

[解決済み] jquery beforeunload ページを閉じる(離脱しない)とき?

2022-03-13 22:17:23

質問

ユーザーがページを閉じようとしたとき(ブラウザのウィンドウまたはタブのXボタンをクリックしたとき)ではなく、ユーザーがページから離れようとしたとき(他のリンクをクリックしたとき)に、"Are you sure you want to leave the page?" を表示するにはどうすればよいですか?

私のクライアントは、ユーザーがページを閉じようとしたときに "本当にこのページから離れますか?ショッピングカートにまだ商品があります。

残念ながら $(window).bind('beforeunload') は、ユーザーがページを閉じたときだけ起動するわけではありません。

jQueryを使用します。

function checkCart() { 
  $.ajax({
    url : 'index.php?route=module/cart/check',
    type : 'POST',
    dataType : 'json',
    success : function (result) {
       if (result) {
        $(window).bind('beforeunload', function(){
          return 'leave?';
        });
       }
    }
  })
}

解決方法は?

を使用することで可能です。 JQuery .

について ,

<a href="your URL" id="navigate"> click here </a>

あなたの JQuery になります。

$(document).ready(function(){

    $('a').on('mousedown', stopNavigate);

    $('a').on('mouseleave', function () {
           $(window).on('beforeunload', function(){
                  return 'Are you sure you want to leave?';
           });
    });
});

function stopNavigate(){    
    $(window).off('beforeunload');
}

そして、それを得るために メッセージを残すアラート になります。

$(window).on('beforeunload', function(){
      return 'Are you sure you want to leave?';
});

$(window).on('unload', function(){

         logout();

});

この解決策はすべてのブラウザで動作し、私はそれをテストしました。