Как указать QuirksMode для doctype в iframe в IE 9?
Вопрос:
У нас есть портал, где doctype совместим с xhtml 1.0. Затем на портале у нас есть контент iframe, куда мы встраиваем различные веб-приложения. Некоторые из этих заявлений были написаны нами, некоторые сторонними.
Теперь в этот iframe мы встраиваем, среди прочего, отчеты Microsoft Reporting Service. Проблема в том, что службы отчетов Reporting Services требуют QuirksMode для отображения "правильно". И портал не работает в QuirksMode (на мой взгляд, это нормально, так как мы нацелены только на 9 и, возможно, на IE8). Портал также не очень хорошо отображается в IE7, и мы собираемся отказаться от поддержки IE8 как можно скорее.
Однако IE9, похоже, наследует режим документа от родительской страницы, поэтому отчеты службы отчетов отображаются в стандартном режиме IE9, а не в режиме причуд. Таким образом, все отчеты отображаются неправильно (и я не имею в виду немного, это действительно серьезно, совершенно неправильно, абсолютно ужасно)
Проблема в том, что мы не можем изменить службу отчетов...
Невозможно заставить службу отчетов (любой версии) отображать HTML не в модном режиме.
Как будет отображаться iframe в режиме причуд? я мог бы добавить
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="X-UA-Compatible" content="IE=8" />
Чтобы получить iframe для рендеринга в QuirksMode. (редактировать: даже не работает, когда мне все равно, как портал рендерит и все равно его помещаю)
К сожалению, портал, как сказано, не совместим с IE7, так что это не вариант.
Кроме того, отчеты SSRS выполняются в другом домене, чем портал, поэтому я не могу использовать JavaScript/jQuery в любом случае.
Есть ли способ сделать iframe рендеринга в QuirksMode, не разрушая макет родительской страницы?
Или (уже существующий) способ заставить службу отчетов отображать корректный HTML (у меня, конечно, нет времени написать собственное расширение для отображения HTML)?
2 ответа
Через MSDN:
Хотя более новый механизм рендеринга используется только тогда, когда Windows® Internet Explorer® обнаруживает, что HTML-страница запросила самый высокий уровень поддержки стандартов, это не всегда верно для дочерних страниц, которые могут быть загружены в элементы frame и iframe. Поскольку одновременно может быть активен только один движок рендеринга, режим IE9 также включает эмуляцию для режима Quirks.
Извините, но то, что вы хотите сделать, невозможно достичь в IE9.
Некромантия по 2016 году.
Если у вас есть такая же проблема (с SSRS):
Служба отчетов SQL Server 2016 CTP 3.3 (портал предварительного просмотра) предоставляет HTML-код, соответствующий стандартам.