У меня есть проект веб-сайта ASP.NET 3.5. В нем существует страница (A); на этой странице есть <iframe>
, который загружает другую страницу (B). Начиная с B, через эту функцию запускается модальное диалоговое окно:
function ShowDialogLookup(anchorDiv) {
// anchorDiv is div element with some data properties
var result = window.showModalDialog($(anchorDiv).data('popup-url'), window, "dialogHeight: 300px; dialogWidth: 500px");
return false;
}
Отказ от ответственности: Я хотел бы тысячу раз переписать это, чтобы использовать jQuery Dialog в модальном режиме, но я отвечаю только за то, чтобы заставить его работать в IE9. Итак, с этим сказал ...
В этом всплывающем окне отображаемая страница содержит кнопку «ОК» и кнопку «Отмена». Кнопка «Отмена» просто:
<button class="lookup-cancel">Cancel</button>
Назначено событие для закрытия модального диалога:
$('.lookup-cancel').button().click(function() {
window.close();
});
В IE9, режим просмотра несовместимости , нажатие кнопки вызывает две вещи:
- Модальное диалоговое окно закрывается, но
- Второе полнокадровое окно запускается по тому же URL-адресу, что и модальное диалоговое окно.
Кнопка «Отмена» в полном окне теперь работает должным образом, когда она больше не содержится в модальном диалоговом окне, но независимо от того, что вызвало IE для запуска, это неожиданное поведение.
В IE9, с включенным режимом просмотра совместимости , нажатие кнопки делает именно то, что и должно.
- Я сделал что-то в jQuery или IE, что ломается в IE9, что работало бы в IE 6, 7 или 8?