|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
通过大家的心得,或许能找出"怎么学html5"这个问题的答案。另,我会不定期把群里面关于技术的讨论贴到本帖,敬请关注。网页制造poluoluo文章简介:js对跨域iframe会见成绩,由于要把持a.html中iframe的高度和宽度就必需起首读获得到b.html的巨细,A、B不属于统一个域,扫瞄器为了平安性思索,使js跨域会见受限,读取不到b.html的高度和宽度.
页面域干系:
主页面a.html所属域A:www.taobao.com
被iframe的页面b.html所属域B:www.alimama.com,假定地点:http://www.alimama.com/b.html
完成效果:
A域名下的页面a.html中经由过程iframe嵌进B域名下的页面b.html,因为b.html的宽度和高度是不成预知并且会变更的,以是必要a.html中的iframe自顺应巨细.
成绩实质:
js对跨域iframe会见成绩,由于要把持a.html中iframe的高度和宽度就必需起首读获得到b.html的巨细,A、B不属于统一个域,扫瞄器为了平安性思索,使js跨域会见受限,读取不到b.html的高度和宽度.
办理计划:
引进代办署理代办署理页面c.html与a.html所属不异域A,c.html是A域下供应好的两头代办署理页面,假定c.html的地点:www.taobao.com/c.html,它卖力读取location.hash内里的width和height的值,然后设置与它同域下的a.html中的iframe的宽度和高度.
代码以下:
a.html代码
起首a.html中经由过程iframe引进了b.html
<iframeid=”b_iframe”height=”0″width=”0″src=”http://www.alimama.com/b.html”frameborder=”no”border=”0px”marginwidth=”0″marginheight=”0″scrolling=”no”allowtransparency=”yes”></iframe>
b.html代码
<scripttype=”text/javascript”>
varb_width=Math.max(document.documentElement.clientWidth,document.body.clientWidth);
varb_height=Math.max(document.documentElement.clientHeight,document.body.clientHeight);
varc_iframe=document.getElementById(”c_iframe”);
c_iframe.src=c_iframe.src+”#”+b_width+”|”+b_height;//http://www.taobao.com/c.html#width|height”
}
</script>
<!–js读取b.html的宽和高,把读取到的宽和高设置到和a.html在统一个域的两头代办署理页面车c.html的src的hash内里–>
<iframeid=”c_iframe”height=”0″width=”0″src=”http://www.taobao.com/c.html”style=”display:none”></iframe>
c.html代码
<scripttype=”text/javascript”>
varb_iframe=parent.parent.document.getElementById(”b_iframe”);
varhash_url=window.location.hash;
varhash_width=hash_url.split(”#”)[1].split(”|”)[0]+”px”;
varhash_height=hash_url.split(”#”)[1].split(”|”)[1]+”px”;
b_iframe.style.width=hash_width;
b_iframe.style.height=hash_height;
</script>
a.html中的iframe就能够自顺应为b.html的宽和高了.
其他一些相似js跨域操纵成绩也能够按这个思绪往办理
</p>
通过大家的心得,或许能找出"怎么学html5"这个问题的答案。另,我会不定期把群里面关于技术的讨论贴到本帖,敬请关注。 |
|