Простые модальные, jQuery 1.8.0 и IE9
Простая модальная ошибка с jQuery 1.8.0 и IE9 с ошибкой:
SCRIPT438: объект не поддерживает свойство или метод 'removeExpression'
Следующая скрипка демонстрирует (не забудьте запустить с IE9)
http://jsfiddle.net/ericjohannsen/ZVEWa/1/
Переключение jQuery на 1.7.2 заставляет ошибку уходить.
Есть ли способ обойти это?
Возможно, связанный (OP говорит, что проблема связана с jQuery 1.7.1 и iframes)
SimpleModal не работает в IE 9 (внутри iframe)
Несвязанный (проблема с jQuery 1.5)
Проблемы с простым модальным в IE9
Ответы
Ответ 1
Похоже, что проблему можно решить, изменив $.boxModel на $.support.boxModel. Вы можете загрузить обновленную версию http://github.com/ericmmartin/simplemodal.
В ближайшее время я попытаюсь получить полностью упакованный выпуск с минимальной версией.
[edit] SimpleModal 1.4.3 был released и должен решить эту проблему
Ответ 2
Просто чтобы предоставить обновленный ответ (по состоянию на 8/2/2013), так как я наткнулся на это сообщение, в то время как искал ту же ошибку...
Как отмечал Salgiza в комментарии, в jQuery 1.10 произошла смена поддержки $.support.boxModel
, которую использует последняя версия Simple Modal.
Чтобы устранить эту проблему, вы должны изменить следующую строку в исходном коде Simple Modal:
// (Line 239) $.support.boxModel is undefined if checked earlier
//browser.ieQuirks = browser.msie && !$.support.boxModel;
browser.ieQuirks = browser.msie && (document.compatMode === "BackCompat");
Ответ 3
Имел ту же ошибку, что упоминалось выше. "Объект не поддерживает свойство или метод" removeExpression ".
Модальное окно появилось во всех браузерах, кроме IE.
(Использование недопустимой версии 1.4.3 файла jquery.simplemodal.js)
Исправлено, поместив try {} catch (e) {}
вокруг всех динамических свойств.
например.
try {
s.removeExpression('top');
}
catch (e) {
//The support for dynamic properties has been removed in Internet Explorer 9
}
Теперь модальное окно отображается во всех браузерах.
Ответ 4
Обнаружение функции для выражения "Expression" делает трюк, проверьте мое исправление:
https://github.com/ericmmartin/simplemodal/pull/34
https://github.com/redaxmedia/simplemodal/blob/master/src/jquery.simplemodal.js
Ответ 5
Обновление, предложенное в другом ответе, не устранило проблему. Ошибка связана с тем, что removeExpression
и setExpression
недоступны в IE9. Я исправил проблему на своем сайте, комментируя все, что использовало любое выражение (я не забочусь о совместимости IE6-7).