在开发一个项目时,我使用到了echarts,将含echarts的页面使用iframe的方式嵌入到主页面中,并且可通过点击按钮控制iframe的显示和隐藏(display:none),在ie、chrome中都可以正常显示不报错,可是在火狐浏览器中就会报错,并且无法显示echarts图标,通过各种尝试,使用以下方法解决了这个问题。
不要将iframe写在html文件中,而是在点击按钮使iframe显示时再创建iframe,示例代码如下:
html:
<p id="btn">查看iframe</p>
<div id="divName" style="display:none"></div>
js:
$("#btn").click(function(){
$("#divName").css("display","flex")
$("#divName").append(<iframe src="....."/>)
})
原因:
火狐对iframe的解析有问题,火狐加载iframe中的页面时,那个页面的加载初始化返回没能执行,也就无法创建echarts实例了。一些火狐中iframe的部分其他错误也可以使用这种方法解决。