FireFox的iframe显示问题

作者:ZealLi 来源:WebDev 日期:2005-12-10
转载请保留本文原始链接:http://www.zeali.net/blog/entry.php?id=228

  笔记本和家里的PC全部都重装了,顺便也就装上了Firefox 1.5 RC版。结果发现自己之前费了老大劲在Firefox1.0.x下面修改的Blog显示代码到了这个1.5RC又出现了问题。

  最大的问题是iframe的显示又不对了,大部分的iframe内容统统变成白板,而且iframe页面的高度也完全和原来不一样。

  经过无数次的测试+Google之后,终于把问题最终定位:原来我把iframe作为一部分内容放在了DIV里面,为了页面美观,我用js首先把这个DIV设成了display = 'none';然后在iframe的onload里面在把这个层设置为可见,同时根据实际的iframe.document的高度来动态调整iframe的高度。

  这些操作在IE和Firefox之前版本里面能够正确的表现出来,但在1.5RC里面,Firefox似乎发生了一些错乱,当iframe载入文档的同时进行了DIV的display='none'操作(或者是Firefox本身对这两种操作进行了同步化?),这之后再去通过设置display='';来显示DIV的内容的话,IFRAME就会出现空白一片,除了iframe之外的页面元素却能全部正常的显示。

  虽然知道了问题所在,但看来目前我没有更好的解决方法,只能是调整自己js的处理,暂时去掉了把DIV隐掉的操作。同时把这个现象作为bug提交给了bugzilla,希望在1.5的正式版本不会有这个问题存在。

----

P.S. 这个1.5版本有一个好的改进,那就是对于iframe高度的计算,之前的版本计算出来的高度不准确,以至于我必须在js里面单独针对Firefox进行判断:

//extra height in px to add to iframe in FireFox 1.0+ browsers
var FFextraHeight=getFFVersion>=1.0? 16 : 0 ;
来把这个缺掉的16px的高度给加回去。现在1.5版本就完全不需要进行这个修补了:)

 

相关文章