Подтвердить что ты не робот

Как заставить Iframe запускать причуды под стандартным родительским фреймом

У нас есть родительская страница, которая должна запускаться в стандартном режиме IE9, выполняя команды HTML5. Ниже мы имеем iframe, который должен работать в режиме совместимости (IE7/8).

В IE9, как я понимаю, iframes наследует свой doctype от родителя. это верно? Есть ли решение для этой проблемы? может, каким-то образом iframe будет выполняться с quirks doctype в стандартном режиме doctype parent frame? благодаря, Tal

4b9b3361

Ответ 1

Невозможно вызвать другой режим рендеринга в дочернем iframe в IE9, как это официально описано здесь: http://msdn.microsoft.com/en-us/library/gg558056(v=vs.85).aspx (выделено мной)

Хотя новый механизм рендеринга используется только в Windows Internet Explorer обнаруживает, что HTML-страница запрашивала самый высокий уровень поддержка стандартов, то же самое не всегда верно для дочерних страниц которые могут быть загружены внутри фреймов и элементов iframe. Потому что только один движок рендеринга может быть активным в то время, режим IE9 также включает эмуляция для режима Quirks.

Однако, как говорится, вы можете запускать "эмуляцию режима quirks" , что оставляет двигатель рендеринга IE9 активным, но несколько изменяет его поведение в соответствии со старыми причудами режим.

JSBin demo: http://jsbin.com/ozejuk/1/

В этом примере есть div со стилем background: #ff0000; background: 00ff00; border-radius: 30px... в режиме quirks, принимаются шестнадцатеричные цвета без #. В режиме IE9 это не так. Загрузка демоверсии в IE9 покажет красный div на родительской странице и зеленый div (но все еще с закругленными углами) в iframe.

Как вызвать эмуляцию режима quirks в iframe: http://msdn.microsoft.com/en-us/library/gg558096(v=vs.85).aspx

Краткая версия: опустите DOCTYPE, добавьте: <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

Полный список эффектов эмуляции режима quirks при рендеринге: http://msdn.microsoft.com/en-us/library/gg558047(v=vs.85).aspx