0

作成中のアラート機能に問題があります。アラートは、ユーザーが戻るボタンを押したときにのみオフになるはずです。問題は、ユーザーがページを閉じようとしたときにもアラートが表示されることです。これを修正する方法はありますか?これがコードです。クリックされたリンクでブール値を true に設定することでこれを機能させ、アラートをオフにします。

編集:それを捕まえた人のために、ええ、引用符がありませんでした. ここでコードを編集していて、誤って引用符を削除しただけです。それは実際には問題ではなく、ここのコード内で修正しました。

<script>
 var okayToLeave = false;

window.onbeforeunload = function () {
   if (!okayToLeave) {
   return "By going back, you risk submitting your order twice."
   }
}

function OkayToLeave() {
    okayToLeave = true;
} 
4

2 に答える 2

4

次の行に " がありません:

return "By going back, you risk submitting your order twice."

編集:

OkayToLeaveメソッドは を定義する必要がありますonbeforeunload

そのため、値を true に設定する代わりに、そのイベントを追加することを検討する必要があります。

編集2:

コード例を次に示します。

function NotOkayToLeave() {
    window.onbeforeunload = function () {
        return "By going back, you risk submitting your order twice.";
    };
};

function OkayToLeave() {
    window.onbeforeunload = null;
};
于 2012-11-08T21:19:17.947 に答える
1

アンロードが単にイベントによってクローズまたはバックアクションによって引き起こされたかどうかを判断する方法を認識していません。ただし、別の解決策として、ハッシュ タグを使用してバッファとして機能させることができます (これは、別のページに完全にリダイレクトできないことを前提としています。これは、推奨される解決策です (二重送信を防ぐためにセッション値を設定する以外に))。

ページにアクセスしたら、ハッシュ タグを JavaScript で変更します。次に、ハッシュが元に戻ったことを検出し ([戻る] ボタン)、アラートをスローしてハッシュを追加し直します。

jquery hashChange プラグインは、変更を検出する 1 つの方法です。

https://github.com/cowboy/jquery-hashchange

于 2012-11-08T21:21:55.700 に答える