主题:  解决iframe在页面中无法自适应

Bain

职务:普通成员
等级:1
金币:1.0
发贴:78
#12004/9/13 10:54:23
iframe是一个比较特殊的控件。他的height只能是一个绝对值,不允许使用百分比。但是你可以用javascript输出一个iframe的HTML。但是这个相对值只能是当页面加载后赋给的。如果你resize。控件大小仍然是当初加载的高度。这个时候除了你在刷新。高度值才会重新加载。

这里我就想到了一个解决的方法。就是在body的标签中加上一个onResize事件;当你onload的时候触发写好的JS函数。然后在onResize的时候同样出发这个函数。从而解决上述问题。

演示代码如下:

<body bgcolor="#000000" onload="resizeHeight();" onResize="resizeHeight();">
<script language="javascript">
function resizeHeight()
{
document.getElementById("web").style.height = parseInt(document.body.clientHeight-50);

}
</script>

<iframe name="web" id="web" width="100%" scrolling="NO" frameborder=0 src="about:blank"></iframe>
</body>



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
#22004/9/13 11:07:46
好像不是原创!

其实对于IFrame的高度自适应更正规的解决办法是使用Behavior/HTC或者Expression样式的办法(如果不考虑兼容性的话)

编辑历史:[此帖最近一次被 ridincal 编辑过(编辑时间:2004-09-13 13:13:24)]


浮尘

职务:普通成员
等级:3
金币:7.0
发贴:1258
#32004/9/15 9:49:18
ridincal
能否给做个实例?



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
#42004/9/15 10:16:42

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]



浮尘

职务:普通成员
等级:3
金币:7.0
发贴:1258
#52004/9/15 14:07:25
谢谢。



Bain

职务:普通成员
等级:1
金币:1.0
发贴:78
#62004/9/16 8:21:05
是不是原创我觉得不重要。重要的是能把自己的心得共享给大家。

至于你说的用Expression方法。我也在MSDN上看过相关的说明。自己也尝试过。但这样做效率不高。计算速度过长。

所以才想到使用属性直接替换的方法。

另外具我说知。在编程界里并没有什么标准的说法。方便,实用就是标准。只要结果一样。并且效率各方面都好。就算通过。



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
#72004/9/16 12:51:20
Bain在上个帖子中说
引用:
是不是原创我觉得不重要。重要的是能把自己的心得共享给大家。

请注意:
这里鼓励分享自己的心得,但不鼓励不加说明就将他人的劳动成功Copy为自己的心得!如果你连这个起码的道理都不明白,我也无话可说……我只想知道你是不是这儿的站长:
kiss.lz4f.com/blog/blogview.asp?logID=121



Bain

职务:普通成员
等级:1
金币:1.0
发贴:78
#82004/9/17 9:34:51
不好意思。我的站点是:http://www.contnew.com。你说的这个站点我不知道。
这篇文章虽然没有什么难度而言。但是自己写的我还是清楚的。



Bain

职务:普通成员
等级:1
金币:1.0
发贴:78
#92004/9/17 9:42:17
另外我在补充一下。blueidea中的文章也是我发布的。



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
#102004/9/17 9:56:52
如果原作者是你的话,应该 Say Sorry 的是我,不好意思!
感谢分享心得
另,建议发表原创性文章使用图标



Bain

职务:普通成员
等级:1
金币:1.0
发贴:78
#112004/9/17 10:45:36
呵呵。其实我的目的就是能把自己知道的与大家分享。并不在意是否原创的名号。
我的小站:www.contnew.com。

有时间还望多支持。