Ответ 1
Вы не можете вызвать .dialog(), прежде чем DOM будет готов в IE. Переместите свой вызов на test() вместо $(document).ready();
Мы используем jQuery UI Dialog для вставки данных в базу данных. Когда диалоговое окно jQuery закроется, отправьте IE повисшим и показывая сообщение: "IE перестает работать". Эта проблема возникает из-за обновления "Накопительное обновление безопасности для Internet Explorer 9 для Windows 7 для x64-систем (KB2761451)". Я подтвердил удаление этого конкретного обновления, проблема устранена.
Я использую следующую строку кода, чтобы закрыть диалоговое окно
$('#' + dialogName).dialog('close');
Удаление IE Update не является постоянным решением. как я могу исправить эту проблему навсегда?
Вы не можете вызвать .dialog(), прежде чем DOM будет готов в IE. Переместите свой вызов на test() вместо $(document).ready();
У меня такая же проблема, но в моем случае было 3 условия:
1), используя jquery-ui 1.10.3 (с 1.9.2 он отлично работает)
2) на странице init script было script, которое добавляет форму в тело:
jQuery('<form id="frmId" method="post" action="page.aspx"></form>')
.appendTo("body");
3) показать модальный диалог:
$("<div/>").dialog({modal});
Удаление любого из этих условий решило эту проблему для меня:)
И, пример в jsfiddle.net: http://jsfiddle.net/Zm3Qm/1/
Я проследил эту ошибку до наличия элементов формы в моем диалоговом окне. Выполнение .empty(); чтобы очистить содержимое, содержащее форму перед закрытием диалога, остановил IE9 от сбоя.
Диалог закрывается перед сбоем IE? Что произойдет, если вы заблокируете попытку catch?
try{
$('#' + dialogName).dialog('close');
}catch(e){
alert(e);
}