4

私のフォームには複数のボタンとハイパーリンクが含まれており、ブラウザーの戻るボタンにアラートを表示したいと考えています。Chrome と Safari では正常に動作するが、IE と Firefox では動作しない以下のコードを使用しました。

       window.onload = function() {

            var btnClicks = document.getElementsByClassName('noPopup');
            var links = document.getElementsByTagName('a');

            for (var i = 0; i < links.length; i++) {
                links[i].onclick = setGlobal;
            }
            for (var i = 0; i < btnClicks.length; i++) {
                btnClicks[i].onclick = setGlobal;
            }
            function setGlobal() {
                window.btn_clicked = true;
                window.linkClicked = true;
            }

              window.onbeforeunload = function() {
                  if (!window.btn_clicked || !window.linkClicked) {
                      return 'Would you like to save first.';
                  }
              };

      };
4

2 に答える 2

2

この beforeunload を使用すると、ブラウザを閉じたときにのみ発生し、アンカーのクリックの更新時にも発生しません。また、アンロード イベントの前に組み込みのポップアップ メッセージを非表示にするための return を除外することで、アンロード イベントとして機能します。

    関数confirmExit()
    {
        $.ajax({
            タイプ: "ポスト",
            url: site_url + 'welcome_login/logout',
            成功: 関数 (データ)
            {
            }
        });
    }
    $(window).on('mouseover', (function () {
        window.onbeforeunload = null;
    }));
    $(window).on('mouseout', (function () {
        window.onbeforeunload = confirmExit;
    }));

ブラウザ ウィンドウを閉じるとマウス アウトが発生する

于 2015-09-02T07:55:02.857 に答える