window.onbeforeunload機能にバグのために起こるのです。一部の部分的なポストバックは「ページを終了しようとしている」とも考えられます。 ページ上のリンクにhref = "javascript:...."(ASP.Net LinkButtonがこのようにレンダリングされている)がある場合、リンクがクリックされると、IEはウィンドウアンロードイベントを誤って起動します。 ので、私はdirtyflag変数を保持し、リンクはHREF^=「javascript:」形式の使用を開始するために、ページがロードされたときに、今
var __ignoreDirtyFlag = false;
$(document).ready(function() {
if ($.browser.msie) {
$('[href^="javascript:"]').bind('click.ignoreDirtyFlag', function() {
__ignoreDirtyFlag = true;
});
}
});
を追加し、その関数が割り当てられます。リンクをクリックすると、__ ingoreDirtyFlag変数がtrueになります。あなたがあなたのページで使用しているすべてのASP更新パネルがある場合 は、その後
window.onbeforeunload = function globalWindowUnload() {
if (!__ignoreDirtyFlag && isDataFilled == true) {
return "You have unsaved changes on this page. If you leave this page, those changes will be lost.";
}
__ignoreDirtyFlag = false;
return;
};
を追加し、リンクに結合する上記の機能が削除されます。 したがって、更新パネルが更新されるときに関数をリンクに再度バインドする必要があります。本体タグのonload方法の
ので、
function foo() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
}
function endRequestHandler(sender, args) {
// Do your stuff
if ($.browser.msie) {
$('[href^="javascript:"]').bind('click.ignoreDirtyFlag', function() {
__ignoreDirtyFlag = true;
});
}
}
と
、IはFOO()メソッドをassinged。このハックはIEで正常に動作され <body onload="foo()">
すべてのブラウザ:) おかげ
を変更することです。それは読みにくいです。 –
* jquery *タグが表示されません –
この回答はほぼ3歳ですが、質問がjqueryとしてタグ付けされていないため、回答が非jqueryバージョンを追加できると思いますか? –