如index.html页面里有如下代码:
<iframe scrolling=”auto” name=”iframebox” width=”100%” height=”100%” frameborder=”no” id=”iframebox” src=”child.html”></iframe>
如果想修正index.html页面的iframe自适高度,用下面的jquery代码1和代码2配合使用,代码1修正index.html页面,代码2修正child.html页面
jquery代码1:
<script type=”text/javascript”>
//为了解决iframe在IE7,IE8浏览器下的兼容问题
//这是iframe标签内SRC链接页面内的jquery代码
$(window.parent.document).find(“#iframebox”).load(function(){
var main = $(window.parent.document).find(“#iframebox”);
var thisheight = $(document).height()+30;
main.height(thisheight);
});
</script>
jquery代码2:
<script type=”text/javascript”>
//为了解决iframe在IE7,IE8浏览器下的兼容问题
//这是iframe标签同级的jquery代码
$(“#iframebox”).load(function(){
var mainheight = $(this).contents().find(“body”).height()+30;
$(this).height(mainheight);
});
</script>
注意:
上面的jqury代码1放在teacher.tpl和代码2放在t_main.tpl里的位置:
绑定事件必须在iframe加载完毕之前绑定,否则不会执行。
jQuery,load事件的概述:
在每一个匹配元素的load事件中绑定一个处理函数。
如果绑定给window对象,会在所有内容加载后触发,包括窗口,框架,对象和图像。
如果绑定在元素上,则当元素的内容加载完毕后触发。
只有当在这个元素完全加载完之前绑定load的处理函数,才会在他加载完后触发。
如果之后再绑定就永远不会触发了。所以不要在$(document).ready()里绑定load事件,因为jQuery会在所有DOM加载完成后再绑定load事件。