iframe跨域高度自适应实现

转自网络:


首先,我的页面a.html需要引入对方的b.html,在这里运用iframe方式实现页面的套用   a.html页面的主要代码如下:

<BODY>   <iframe width="100%" id="a_iframe" name="a_iframe" src="http://对方域名/b.html"   frameborder="no" border="0px" scrolling="no" allowtransparency="yes" ></iframe>  </BODY>


a.html页面只是用来引入对方页面的一个简单页面 这就不多做介绍。   然后,最好在a.html同一级目录下,创建一个agent.html页面,该页面用来得到对方通过js传递过来的参数,   根据高度参数来调整a.html中的a_iframe的高度,主要代码如下:

<script type="text/javascript">  //得到a.html中的a_iframe   var a_iframe = parent.parent.document.getElementById("a_iframe");  //<SPAN>location.hash用来获取页面的标签值</SPAN>  ,这个值通过b.html中的js函数改变。包括height属性  var hash_url = window.location.hash;  //得到b.html传递过来的height属性   var hash_height = hash_url.split("#")[1]+"px";  //调整a_iframe的height,达到自适应  a_iframe.height = hash_height;  </script>


最后,对方的页面(b.html),让对方在b.html中加入以下javascript代码 
,代码如下( 注意:代码放在页面的最下面)
<iframe id="b_iframe" width="100%" src="http://我的域名/../agent.html" style="display:none">  </iframe>   <script type="text/javascript">  var b_height =  Math.max(document.body.scrollHeight,document.body.clientHeight);  var b_iframe = document.getElementById("b_iframe");  
b_iframe.src = b_frame.src+"#"+b_height;  </script>


通过 Math.max(clientHeight,scrollHeight)比较网页可见区域高,网页正文全文高这两者得到其中的较大的值后,   iframe将这个height通过src传递到我的agent.html,这样a.html中的Iframe就能自适应对方的b.html高度了。

你可能感兴趣的:(iframe跨域高度自适应实现)