1

ユーザーがASP.Netページを予期せず離れるときに、ユーザーが離れてもよいかどうかを尋ねるメッセージを表示するように促す必要があります。ポストバックまたは保存ボタンがクリックされたときに警告が表示されないようにする必要があります。これをカバーする記事はたくさんありますが、私はこれにまったく慣れておらず、私のワイヤーを交差させたようです。

推奨される方法は、window.onbeforeunloadイベントを使用することのようですが、私にとっては予期しない動作をします。これは、ページがアンロードされるときではなく、ページがロードされるときに発生します。

<script language="JavaScript" type="text/javascript">
    window.onbeforeunload = confirmExit;
    function confirmExit() {
        return "You have attempted to leave this page.  If you have made any changes to the fields without clicking the Save button, your changes will be lost.  Are you sure you want to exit this page?";
    }
</script>

JQuery実装を使用すると、ページがアンロードされたときに起動しますが、問題は、コードビハインドが実行される前に起動することです。そのため、ポストバックまたは保存であるため、今回はイベントを発生させないという変数をクライアントに設定することはできません。

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

私が基本的な間違い/誤解をしていることを知っているので、誰かが私を正しい方向に向けることができますか?

編集:

だから私はもうすぐそこにいます:

var prompt = true;

$('a').live('click', function () {

    //if click does not require a prompt set to false
    prompt = false;
});

$(window).bind("beforeunload", function () {

    if (prompt) {

        //reset our prompt variable
        prompt = false;

        //prompt
        return true;
    }
})

問題が上記のコードにある場合を除いて、クリックを区別できる必要がありますが、まだそれを理解できていません。つまり、ここで条件が欠落しています。"//クリックでプロンプトをfalseに設定する必要がない場合"。

何か案は?

ありがとう、マイケル

4

2 に答える 2

0

これを使用してみることができます:

$(window).unload(function(){
  alert('Message');
});
于 2012-05-01T12:10:49.063 に答える
0

人々が興味を持っている場合、これは私の問題に対する回り道の解決策です。ASP でのページのアンロードが PostBack かどうかを確認する方法

于 2012-05-02T16:09:57.880 に答える