js实现自动设置框架载入页面高度的问题

<body>
<script type="text/javascript">

function setHeight(){
var iframe = document.getElementById("middle");
try{
var aHeight = iframe.contentWindow.document.body.scrollHeight;
var bHeight = iframe.contentWindow.document.documentElement.scrollHeight;
var height = Math.max(aHeight, bHeight);//取最高值;
iframe.height = height;
}catch (e){}
}

</script>

<iframe name="middle" id="middle" src="http://www.xxx.com" frameborder="0" border=0 scrolling="no" style="display:block; margin:0 auto;" width="100%" οnlοad="this.height=1000;setHeight();"></iframe>
</body>


</html>

问题:发现所载入的http://www.xxx.com这个页面显示并不完整。iframe的高度并没有实现适应http://www.xxx.com页面。使用火狐调试的时候发现,js出现了异常,结果进入了上面js代码中的“catch (e){}”这一部分代码了。当然没有成功设置iframe元素的height的值了。火狐提示了另外一个有用的信息,大致是说:js没有权限。

后来,同样的代码,上传到服务器上能够成功设置高度。而在本地使用的时候就出现异常。通过查看资料得出,原来是由于该文件与http://www.xxx.com不在同一个域下面,出现了跨域读取权限的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值