如何在IE 9中为iframe指定doctype的QuirksMode?

时间:2012-09-05 09:00:18

标签: html iframe reporting-services doctype quirks-mode

问题:

我们有一个门户网站,其中doctype与xhtml 1.0兼容。 然后,在门户网站中,我们有一个内容iframe,我们嵌入了不同的Web应用程序。 其中一些申请是我们写的,有些是第三方。

现在,在iframe中,我们嵌入了Microsoft Reporting Service报告等。 问题是,报告服务报告要求QuirksMode“正确”呈现。 门户网站在QuirksMode中不起作用(就我而言,这很好,因为我们只针对9,可能还有IE8)。门户网站在IE7中也没有好转,我们将尽快放弃IE8支持。

但是,IE9似乎从父页面继承了文档模式,因此报告服务报告将以IE9标准模式而不是quirks模式呈现。 因此所有报告都显示不正确(我并不是说一点点,它真的很严重,完全错误,绝对可怕)

问题是,我们无法更改报告服务...
没有办法让报告服务(任何版本)呈现非quirksmode HTML。

根据{{​​3}} 我可以添加

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

要在QuirksMode中渲染iframe。(编辑:当我不关心门户网站如何呈现并将其放入时,它甚至不起作用)

不幸的是,门户网站如上所述,而不是IE7兼容,所以这不是一个选择 此外,SSRS报告在除门户网站之外的其他域上运行,因此我无法以任何方式使用JavaScript / jQuery。

有没有办法在QuirksMode中制作iframe渲染,而不会破坏父页面布局?
或者(已经存在的)使报表服务呈现有效HTML的方式(我当然没有时间编写自定义HTML呈现扩展名)?

2 个答案:

答案 0 :(得分:2)

通过MSDN

  

虽然较新的渲染引擎仅在Windows®InternetExplorer®检测到HTML页面请求了对标准的最高级别支持时使用,但对于可能在frame和iframe元素中加载的子页面,情况并非总是如此。由于一次只能激活一个渲染引擎,因此IE9模式还包括Quirks模式的仿真。

很抱歉,但是你想做的事情在IE9中无法实现。

答案 1 :(得分:0)

根据2016年进行死亡。

如果您遇到同样的问题(使用SSRS):
SQL-Server 2016 CTP 3.3 Reporting-Service(预览门户)提供符合标准的HTML。