Заставить IE9 перейти в режим Quirks?

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

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

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

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




Ответы (3)


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

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

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

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

Подробнее об этом можно узнать на странице Будет ли отображаться iframe в режиме совместимости?, который задает более общий вопрос об элементах iframe и doctype в ie.

person mikepr    schedule 04.01.2012
comment
Да, это решение, которое мы в итоге использовали. Немного хреново, но работает. - person CBarr; 06.01.2012
comment
Возрождает очень старую ветку, но этот метатег находится в заголовке документа верхнего уровня, верно? У меня аналогичная ситуация, когда я не могу контролировать то, что отображается внутри quirk-y iFrame, но полностью контролирую документ верхнего уровня. Спасибо! - person Rishi; 10.11.2015

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

person Yuhong Bao    schedule 25.03.2011

У вас должны быть разные режимы совместимости между 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-standard-or-quirks.aspx

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

HTH.

person The App Compat Guy    schedule 26.02.2011
comment
В этом-то и дело. Я должен иметь возможность, но они изменили это в IE9. Теперь он принудительно устанавливает режим совместимости родительской страницы с любыми дочерними фреймами. - person CBarr; 27.02.2011