Силу ИЕ9 в режиме совместимости?


У меня есть страница с iframe, и iframe содержит код, который должен работать в режиме quirks (это Microsoft Outlook Web Access, так что это не наш код, который мы могли бы исправить в любом случае). IE9 ввел "особенность", что когда родительский фрейм находится в режиме документа IE9, он также заставляет любые iframes в тот же режим документа. Это нарушает код, который мы имеем в iframe.

Я надеялся, что это ошибка в IE9, но мой билет был отклонен как "по дизайну" (вот билет , Если вы потрудитесь посмотреть)

Я не могу запустить весь сайт в режиме quirks, но мне нужно, чтобы это происходило только на этой странице. Есть ли способ программно включить режим рендеринга quirks? Либо это, либо способ эмуляции нажатия кнопки "Просмотр совместимости" - нажатие этой кнопки в значительной степени превращает IE9 в IE8, который также отлично работает.

Возможно ли сделать что-либо из этого?

3 19

3 ответа:

У меня был такой же вопрос, и я довольно подробно исследовал его еще в апреле 2011 года. На тот момент единственным способом получить документ верхнего уровня в "стандартном режиме" и документ в дочернем iframe в "режиме причуд" в IE9 было использовать мета-тег, чтобы браузер вел себя так, как если бы он был IE8. (Насколько мне известно, это по-прежнему так, и Microsoft не намерена его менять.) Есть множество метатегов, которые можно использовать для изменения режима браузера, но тот, который я использовал, сработал было:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

Если вы включаете этот мета-тег, все документы должны быть правильно отрисованы (согласно правилам IE8) в соответствии с их doctype.

Однако обратите внимание, что это не позволяет вам использовать какие-либо из новых поддерживаемых функций css в IE9, даже в документе верхнего уровня. Вы не сможете использовать border-radius, box-shadow, opacity и т. д..

Есть еще немного информации об этом в будет ли iframe отображаться в режиме quirks?, который задает более общий вопрос о iframes и doctypes в ie.

Кстати, режим quirks для содержимого, встроенного в iframe, не совсем совпадает с обычным режимом quirks. Смотрите это: http://msdn.microsoft.com/en-us/library/gg558056 (v=VS.85).aspx

Вы должны иметь возможность иметь различные режимы compat между IFrame и хостом-см.: http://blogs.msdn.com/b/cjacks/archive/2010/12/01/does-a-standards-web-page-inside-of-an-iframe-in-a-quirks-web-page-render-in-standards-or-quirks.aspx

Вы можете указать режим compat, который вы хотите эксплицитно, даже больше, чем вы можете с помощью кнопки, используя X-UA-совместимый тег: http://msdn.microsoft.com/en-us/library/cc288325 (VS.85).aspx

HTH.