@ZEAL Blog·厉
WWW Zeal Blog
We stand alone,
TOGETHER.

FireFox的iframe显示问题

Posted by zeal on 2005-11-11 16:43 , 946 characters |  + 0 - 1   English
转载请保留本行原始出处声明信息 : http://www.zeali.net/entry/228 MaDe1nZEAL
标签 ( WebDev ):  , 

  笔记本和家里的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版本就完全不需要进行这个修补了:)

Last Modified on 2007-05-28 10:21
4 条评论:
- 子乌 () (link) 于 2005-12-09 06:12
你试试看使用style.display='block';
- zeal (link) 于 2005-12-09 10:12
各种网上找到的可能的方法都试过,无效。
在bugzilla上提交之后已经被confirm.
- Sarah2006-01-04 19:45
我也遇到了同样的问题,使用了display:none, 之后重新进行显示,这个是页面功能需求没有办法取消。不过我下载了firefox正式版,还是不支持。
- happyiww2006-09-26 15:55
可以试试现在原来的页面中先把display属性设置为none,我是使用这个方法的,以后就能正常地使用display属性了
日志存档
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
本 Blog 原创内容
遵循以下授权:

Creative Commons
(创作共用) CC

署名-非商业性
-相同方式分享
ZEAL Blog 基于
Powered byPivot - 1.24.1: 'Arcee'
Pivot1.24.1
开发
系统部署于
Linode.com
Launched @
2005-04-27
Since 2005.04.27  梦想 就像鸡蛋 要么孵化 要么臭掉RSS Feed (Entries) | About me | Back To Home | @ZEAL | zbird.com | 沪ICP备05024379号