精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-10
最后修改:2010-12-14
引用 一个iframe高度自动变化的问题搞了我半天,网上找了下资料,不是很好,结合了一下jquery(版本1.3.2),4行代码即可,完美兼容IE、Firefox、Opera、Safari、Google Chrome,js如下:
function heightSet(thisFrame){ if($.browser.mozilla || $.browser.msie){ bodyHeight =window.frames["thisFrameName"].document.body.scrollHeight; }else{ bodyHeight =thisFrame.contentWindow.document.documentElement.scrollHeight; //这行可代替上一行,这样heightSet函数的参数可以省略了 //bodyHeight = document.getElementById("thisFrameId").contentWindow.document.documentElement.scrollHeight; } document.getElementById("thisFrameId").height=bodyHeight; } 引用 第一次发帖,还请指教
[quote现在j2ee做web系统,大部分都离不开iframe,除非你全用ajax,但是ajax到处使用但如果用得不好的话,肯定会一大堆问题。唉!技术有限,只能跟着造造轮子 <iframe id="mainFrame" name="mainFrame" frameborder="0" scrolling="no" src="" onload="heightSet(this)"> </iframe> 引用 this关键字在各种浏览器似乎有不同的意思,FF和IE必须要通过iframe的名字去得到内部页面高度,而其他浏览器则可以用this或ID
引用 都在说一个异步的问题,如果你ajax用得特别多,但又不想每次都去设置,那动态改变iframe肯定达不到你的代码清洁要求,没办法,要么你就脱离iframe。我只能说说一般处理方式,毕竟ajax或动态表单在一般应用中只占小数比例,异步请求后只需在后面加上:
parent.window.heightSet(); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-12-11
这个不一定可以解决问题的 要看你的heightSet何时执行 还要看程序是不是异步
|
|
返回顶楼 | |
发表时间:2010-12-12
最后修改:2010-12-12
我前一阵正在找这个问题的解决方案。LZ,你在转载他人成果的时候最好显式声明下。
这个方法可行,但是不够好,而且跨域的时候就失效了。 |
|
返回顶楼 | |
发表时间:2010-12-12
freej 写道 我前一阵正在找这个问题的解决方案。LZ,你在转载他人成果的时候最好显式声明下。
这个方法可行,但是不够好,而且跨域的时候就失效了。 嘎嘎。。。 |
|
返回顶楼 | |
发表时间:2010-12-12
还缺少使用范例。
1. 怎么调用heightSet :thisFrame参数是什么 2. window.frames["thisFrameName"]: "thisFrameName"代表什么意思,怎么会在代码里写死了呢? 3. 至少还缺少一个hello world的使用 4. 限制条件 等等 |
|
返回顶楼 | |
发表时间:2010-12-12
lz,设置高度的时候还是用style比较标准哇哇....你这个很简单,而且不通用....
|
|
返回顶楼 | |
发表时间:2010-12-13
xinyu198736 写道 lz,设置高度的时候还是用style比较标准哇哇....你这个很简单,而且不通用....
完美兼容几乎所有浏览器,已测 |
|
返回顶楼 | |
发表时间:2010-12-13
buru 写道 这个不一定可以解决问题的 要看你的heightSet何时执行 还要看程序是不是异步
这跟程序异步没有关系,若果你要在其他页面调用 parent.window.heightSet()搞定 |
|
返回顶楼 | |
发表时间:2010-12-13
jorneyR 写道 还缺少使用范例。
1. 怎么调用heightSet :thisFrame参数是什么 2. window.frames["thisFrameName"]: "thisFrameName"代表什么意思,怎么会在代码里写死了呢? 3. 至少还缺少一个hello world的使用 4. 限制条件 等等 你说得有理 |
|
返回顶楼 | |
发表时间:2010-12-13
freej 写道 我前一阵正在找这个问题的解决方案。LZ,你在转载他人成果的时候最好显式声明下。
这个方法可行,但是不够好,而且跨域的时候就失效了。 老兄,你去看看电影<<社交网络>> |
|
返回顶楼 | |