10

jQuery UI ダイアログを使用してデータベースにデータを挿入しています。送信時に jQuery ダイアログが閉じようとすると、IE がハングし、「IE が動作しなくなりました」というメッセージが表示されます。この問題は、更新プログラム「Windows 7 for x64-based Systems (KB2761451) の Internet Explorer 9 の累積的なセキュリティ更新プログラム」が原因で発生します。この特定の更新プログラムをアンインストールすることで、問題が解決したことを確認しました。

次のコード行を使用してダイアログを閉じています

 $('#' + dialogName).dialog('close'); 

IE Update をアンインストールすることは永続的な解決策ではありません。どうすればこの問題を永久に修正できますか????

4

4 に答える 4

1

IE で DOM の準備が整う前に .dialog() を呼び出すことはできません。呼び出しを $(document).read(); ではなく test() に移動します。

于 2012-12-27T16:15:04.840 に答える
1

私は同じ問題を抱えていますが、私の場合、3つの必須条件がありました:

1)jquery-ui 1.10.3を使用(1.9.2では正常に動作します)

2) ページの init スクリプトには、本文にフォームを追加するスクリプトがありました。

jQuery('<form id="frmId" method="post" action="page.aspx"></form>')
    .appendTo("body");

3) モーダル ダイアログを表示:

$("<div/>").dialog({modal});

この条件のいずれかを削除すると、この問題が解決されました:)

そして、jsfiddle.net の例: http://jsfiddle.net/Zm3Qm/1/

于 2014-04-24T13:15:12.397 に答える
0

IE がクラッシュする前にダイアログが閉じますか? try catch でロックするとどうなりますか?

try{
    $('#' + dialogName).dialog('close'); 
}catch(e){
    alert(e);
}
于 2012-12-28T02:17:51.233 に答える