跨域从子页面设置父页面iframe高度

之前在论坛里看到有个同学问关于跨域调整iframe高度的问题,正好之前解决过类似问题,鉴于此问题还是有一定的通用性,索性总结一下,记录于此。

创新互联专注于马鞍山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供马鞍山营销型网站建设,马鞍山网站制作、马鞍山网页设计、马鞍山网站官网定制、微信平台小程序开发服务,打造马鞍山网络公司原创品牌,更为您提供马鞍山网站排名全网营销落地服务。

具体思路如下:

父页面域名为 : www.a.com

IFRAME里子页面域名为 : www.b.com

1.在父级页面所在域名(www.a.com)下设置一个文件,(用来设置IFRAME的高度)比如:http://www.a.com/setHeight.html

2.在子级页面加载完毕后,计算当前页面高度付给一个变量cheight,然后动态创建一个iframe,src是http://www.a.com/setHeight.html#cheight;

3.通过在setHeight.html页面中parent.parent.document.getElementById(\'iframeid\')来调整iframe的高度

4.解释一下,在子页面里动态创建的iframe跟当前子页面的父级页面是同一个域名,这样就不存在跨域问题了。

举例:
假设父页面的域名是www.a.com,页面名字是A.html;子页面的域名是www.b.com,页面名字是B.html

父页面A.html的内容如下:

[html]view plaincopy


父级页面所在域名下的用于调节iframe高度的页面setHeight.html内容如下:
[html]view plaincopy
window.onload=function() { varb_iframe=parent.parent.document.getElementById("iframe1"); varhash_url=window.location.hash.split("#"); varhash_height=hash_url[1]+"px"; b_iframe.style.height=hash_height; }


子页面B.html内容如下:
[html]view plaincopy
sdfsfsssfsfs


可见默认的iframe高度是200px,而iframe中B.html的实际高度至少为600px,当B.html加载完成时,会自动调整其父页面iframe的高度

网页标题:跨域从子页面设置父页面iframe高度
URL地址:http://scjbc.cn/article/cpojhs.html

其他资讯