环境:BIEE11.1.1.7... JAVA
背景:
1、由于种种原因,在biee的仪表盘中使用叙述内嵌了highcharts,用于展示图形。但发现在IE8下若鼠标悬浮在图形上移动,弹出框会导致原来的图形展示有重影的效果。特别是饼图,若鼠标移动一周,原来的饼图简直没法看了。但在IE10中又正常。解惑之。。。增加头文件代码,如下2步:
- 在内嵌的iFrame页面中,#document下增加以下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
2、由于需求,需要把在iFrame内部页面的提示器拿至外部,然后期望影响全局。由于java传参的特殊字符问题,导致解决方案不完美,转入研究BIEE内部机制传参,在谷歌浏览器(25)和IE10完美实现,在IE8中又开始重复纠结,要么不传递,要么传递延迟。跟踪甚久,发现是setInterval轮询函数在IE8中由于兼容性问题导致仅执行一次后停止。修改代码,新增setInterval执行函数为带随机数参数传递,解决setInterval函数仅执行一次的情况。后来发现情况稍好,但还会出现传参延迟情况。再跟踪之,发现还是IE8的兼容性问题作祟,修改iFrame传递的URL中多增加一个无意义随机数参数,欺骗IE8浏览器为每次访问不同的URL,使之每次都重新加载页面,而不是从缓存加载页面。再试之,效果还是如此。再次排查之,后来无意间发现setInterval函数执行时间在BIEE内部数据刷新机制之前,传参在变更之前,延迟是必然的了。遂添加setTimeOut函数延迟0.5S执行,完美解决之。
PS:下次抽时间写写使用BIEE内部机制跨iFrame传参的解决方法。有期盼的TX么?