博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iframe显示高度自适应 兼容多浏览器
阅读量:6975 次
发布时间:2019-06-27

本文共 1066 字,大约阅读时间需要 3 分钟。

在页面上用了iframe带来方便的同时也带来了麻烦,在IE6里能正常显示的iframe在其他的浏览器里确十分丑陋而不方便。为了解决 IE,Firefox,chrome,safari中iframe显示高度自适应问题上网海找了一遍,试了好几个方案都不妥,最后发现了一个可以正常解决的方案。

首先加入以下的JS代码:

  1. function stateChangeIE(_frame)  
  2. {  
  3.     if (_frame.readyState=="complete")//state: loading ,interactive,   complete  
  4.     {  
  5.         AutoHeight();  
  6.     }    
  7. }  
  8. function stateChangeFirefox(_frame)  
  9. {    
  10.     AutoHeight();  
  11. }  
  12.       
  13. function AutoHeight()  
  14. {  
  15.     if(document.readyState!='complete')  
  16.     {  
  17.         setTimeout( function(){AutoHeight();},50 );  
  18.         return;  
  19.     }  
  20.     else  
  21.     {  
  22.         try  
  23.         {   //IE、fireFox下测试通过  
  24.             var ifobj=document.getElementById("mainFrame");  
  25.             ifobj.style.height = ifobj.contentWindow.document.body.scrollHeight + 0 + "px";  
  26.         }   //注意,别忘了加最后那个"px",不然fireFox下就不起作用了  
  27.         //加的那0是为了让非IE浏览器高度不会一直增加  
  28.         catch(e)  
  29.         {}  
  30.     }  
  31. }  
  32. 其次使用iframe如下:
    1. < iframe src="./welcome.html" name="mainFrame" id="mainFrame"  
    2.                 onreadystatechange="stateChangeIE(this)"  
    3.                 onload="stateChangeFirefox(this)" style="width: 100%; height: 9px"  
    4.                 frameborder="0"></iframe >  

    更改完成了,关闭浏览器重新打开或刷新页面,即可看到正常显示效果。以上代码在IE6,Firfox 3.6.11,Chrome(谷歌浏览器)

    7.0.544.0,Safari 5.0.2版本上显示正常。

转载于:https://www.cnblogs.com/chaoa/archive/2012/03/09/2386097.html

你可能感兴趣的文章
求正弦型函数的参数的取值范围
查看>>
rabbits php实现文件下载!
查看>>
关于抽象类和接口的讨论
查看>>
PHP计算每月几周,每周的开始结束日期
查看>>
业务流程图怎么画
查看>>
html字符字体转换
查看>>
web页面和本地数据对比问题
查看>>
Springboot 1.X 在Weblogic 中的发布
查看>>
腾讯TBS X5 WebView的简单使用
查看>>
清除浮动 .clearfix
查看>>
topcoder srm 370 div1
查看>>
WPF 触发器例子
查看>>
古典密码简介
查看>>
axios全局设置url公共请求头
查看>>
JQuery选择器学习整理(基本选择器,层级选择器,伪类选择器,属性过滤,内容过滤,可见性过滤,范围选择器,排除选择器)...
查看>>
SVN服务器的搭建和使用
查看>>
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
查看>>
uestc1633
查看>>
关于 bitset 的一些题目
查看>>
asp.net mvc4应用程序发布、部署、常见问题
查看>>