0

ユーザーがページから移動しようとしたときに、警告メッセージ (「このページから移動してもよろしいですか」) を表示する必要があります。window.beforeunload イベントを使用して、これを機能させました。

var warning = true;
$(window).bind('beforeunload', function (event) {
   if ((warning)) {
        return "You will lose your unsaved changes";
   }
 });

私が直面している問題は、このページに ajax 呼び出しにつながるリンクがいくつかあることです。これにより、「window.beforeunload」がトリガーされません。問題は、これらのリンクをクリックしたときとまったく同じ方法でメッセージを表示するにはどうすればよいかということです。「確認」ダイアログを使用してみました-動作しますが、メッセージはダイアログウィンドウに表示され、最初のケースのようにネイティブブラウザーには表示されません。

4

2 に答える 2

1
$(document).ready(function() {
   var warning = true;

    var showWarning = function (event) {
       if ((warning)) {
            var message = "You will lose your unsaved changes";

            if (event.currentTarget.tagName != "A") {
                return message;
            }

            var conf = confirm(message);

            if (!conf) { //If clicked no prevent click
                event.preventDefault();
                return false;
            }
       }
     };

    $(window).bind('beforeunload', showWarning);
    $("a.ajax").click(showWarning); 
});

</ p>

次のように、Ajaxリンクにクラスajaxを指定するだけです。

<a href="#" class="ajax">Ajax action</a>

編集:何かを忘れた、それは今動作します!

于 2012-12-12T16:03:01.510 に答える
0

これは、httpでメディアまたはiframeを関連付けているhttpsWebサイトにアクセスしたときに表示される警告メッセージに関連する一種の問題だと思います...

于 2012-12-12T16:01:39.990 に答える