概述
本文汇总了一些 Web 集成后在 IE8 或 IE9 浏览器下出现的问题及解决方案。
Web集成后图表在IE9 浏览器的quirks 模式下显示不出来
问题描述:
将一张含有图表的报表通过 iframe 的方式嵌入到 HTML 中,图表在 IE9 的 quirks 模式下显示不出来,其他浏览器比如说:FireFox,Google 等浏览器下显示正常,如下图:
IE9 的杂项(quirks)模式下:
其他浏览器下:
原因分析:
由于 IE9 下面不同解析模式,图表展现不同,IE9 下的杂项(quirks)模式不可以,ie9标准模式能正常展现,所以我们可以修改外层的 HTML 的说明来解决这个问题,指明默认采用 IE9 模式即可。
解决方案:
示例 HTML 完整代码如下:
<!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>
方案一:
修改 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>
方案二:
增加一个 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>
预览效果:
修改将修改之后的 HTML 放在%FineReport_HOME%\webapps\webroot目录下,在 IE9 地址栏输入http://ip:端口号/webroot/xxx.html,能可以看到图表已经显示出来,就说明上面的修改成功。如下图: