iframe嵌套页面高度自适应(iframe 自适应高度)

2022-09-11 12:28:01   编辑:令狐巧友
导读 很多朋友对iframe嵌套页面高度自适应,iframe 自适应高度还不了解,今天小绿就为大家解答一下。iframe 自适应高度如果我们总是用固定的高...

很多朋友对iframe嵌套页面高度自适应,iframe 自适应高度还不了解,今天小绿就为大家解答一下。

iframe 自适应高度如果我们总是用固定的高度调用同一个页面,那么直接写iframe高度就可以了。如果iframe必须切换页面,或者所包含的页面必须进行DOM动态操作,那么程序需要将iframe的高度与所包含页面的实际高度同步。

如果iframe的高度没有确定,它将是初始高度。

Iframe是网页的一部分,它的大小受到网页的限制。最高设置可以是高度=“100%”。

基本上iframe超高的问题是通过添加滚动条来解决的。这很简单。如果iframe中的信息超过一个屏幕,则必须使用滚动条。

一开始不行,后来发现js因为跨域问题,没有权限。后来设置了window.document.domain,使用了jquery code 2方法。

iframe跨域的自适应高度

跨域时,由于js的同源策略,父页面中的js无法获得iframe页面的高度。需要一个页面作为代理。

方法如下:假设a.html www.a.com下的一个页面包含c.html www.b.com下的一个页面。

我们使用agent.html www.a.com下的另一个页面作为代理,获取iframe页面的高度并设置iframe元素的高度。

a.html包含iframe:

Iframe src=' http://www . b . com/c . html ' id=' Iframe ' frame border=' 0 ' scrolling=' no ' style=' border:0px;'/iframe

将以下代码添加到c.html中:

iframe id=' c _ iframe ' height=' 0 ' width=' 0 ' src=' http://www . a . com/agent . html ' style=' display:none '/iframe script type=' text/JavaScript '(函数autoHeight(){ var b _ width=math . max(document . body . scroll width,document . body . client width);var b _ height=math . max(document . body . scroll height,document . body . client height);var c _ iframe=document . getelementbyid(' c _ iframe ');c _ iframe . src=c _ iframe . src ' # ' b _ width ' | ' b _ height;})();/脚本

最后,将一个js放入agent.html:

script type=' text/JavaScript ' var b _ Iframe=window . parent . parent . document . getelementbyid(' Iframe ');var hash _ URL=window . location . hash;if(hash _ URL . index of(' # ')=0){ var hash _ width=hash _ URL . split(' # ')[1]。split(' | ')[0]“px”;var hash _ height=hash _ URL . split(' # ')[1]。split(' | ')[1]“px”;b _ iframe . style . width=hash _ width;b _ iframe . style . height=hash _ height;}/脚本

从agent.html URL获取宽度值和高度值,设置iframe的高度和宽度(因为agent.html在www.a.com,所以操作a.html时不受JavaScript同源的限制)

超级简单的方法,而且不用写什么就能判断出浏览器的高度和宽度。

下面两种方法选一个就行了。一个和iframe在同一个页面,另一个在test.html页面。

小心不要放错地方。

下面是另外两种方法:

Iframe代码,小心写ID

Jquery代码1:

//注意:以下代码是在test.html调用的。

$(window.parent.document)。查找(' #main ')。load(function(){

var main=$(window . parent . document)。find(' # main ');

var thisheight=$(文档)。身高()30;

main . height(this height);

});

Jquery代码2:

//注意:下面的代码是在与iframe相同的页面上调用的。

$('#main ')。load(function(){

var mainheight=$(this)。内容()。查找(' body ')。身高()30;

$(这个)。高度(main height);

});

第二个是有效的,但是要注意,添加的JS要写在iframe下面,放在头上测试没有效果。

测试代码:

以上问题已解答完毕,如果想要了解更多内容,请关注本站

免责声明:本文由用户上传,如有侵权请联系删除!

猜你喜欢

最新文章