1. 概述
1.1 问题描述
将一张含有图表的报表通过 iframe 的方式嵌入到 HTML 中,图表在 IE9 的 quirks 模式下显示不出来,其他浏览器比如说:FireFox,Google 等浏览器下显示正常,如下图:
IE9 的杂项(quirks)模式下:
其他浏览器下:
1.2 实现思路
由于 IE9 下面不同解析模式,图表展现不同,IE9 下的杂项(quirks)模式不可以,ie9标准模式能正常展现,所以我们可以修改外层的 HTML 的说明来解决这个问题,指明默认采用 IE9 模式即可。
2. 示例
将报表嵌入到 HTML 中的代码如下:详见 Web 页面简单集成例子。
完整代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<iframe id="total" width="800px" height="800px" src="/webroot/decision/view/report?viewlet=/doc/Primary/Chart/Chart.cpt" ></iframe>
</body>
</html>
2.1 方案一
修改 doctype,在最上方的 doctype 说明中声明该 HTML 在 IE9 下打开的时候,打开模式默认为 IE 标准模式,代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<iframe id="total" width="800px" height="800px" src="/webroot/decision/view/report?viewlet=/doc/Primary/Chart/Chart.cpt" ></iframe>
</body>
</html>
2.2 方案二
增加一个 meta 标签,表明 IE 浏览器打开该 HTML 时,采用 IE 标准模式,代码如下:
<meta http-equiv="X-UA-Compatible" content="IE=9">
完整代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<meta http-equiv="X-UA-Compatible" content="IE=9">
<html>
<body>
<iframe id="total" width="800px" height="800px" src="/webroot/decision/view/report?viewlet=/doc/Primary/Chart/Chart.cpt" ></iframe>
</body>
</html>
2.3 预览效果
修改将修改之后的 HTML 放在%FineReport_HOME%\webapps\webroot目录下,在 IE9 地址栏输入http://ip:端口号/webroot/xxx.html,能可以看到图表已经显示出来,就说明上面的修改成功。如下图: