Linux 拨号vps windows公众号手机端

iframe窗口高度自适应怎么实现

lewis 6年前 (2019-01-20) 阅读数 9 #程序编程
文章标签 iframe

要实现iframe窗口的高度自适应,可以使用以下方法:

1. 使用JavaScript自动调整高度:在iframe的内容页面中,通过JavaScript来获取内容的实际高度,然后将该高度应用于iframe的高度属性。这可以使用以下代码实现:

<script>

functionresizeIframe(){

variframe=document.getElementById('my-iframe');

iframe.style.height=iframe.contentWindow.document.body.scrollHeight+'px';

}

</script>

<iframeid="my-iframe"src="embedded-page.html"onload="resizeIframe();"frameborder="0"></iframe>

在上述代码示例中,resizeIframe()函数会在iframe加载完成后被调用,并计算出内容的实际高度并将其应用到iframe的高度。

2. 使用postMessage通信:如果您无法修改嵌入页面的内容或使用JavaScript来控制iframe的高度,可以使用postMessage进行跨域通信。嵌入页面和父页面之间可以通过postMessage传递消息,以便调整iframe的高度。

以下是一个简单的示例(假设嵌入页面和父页面在同一域名下):

在嵌入页面中的脚本:

<script>

//发送当前页面的高度给父页面

functionsendHeight(){

varheight=document.body.scrollHeight;

parent.postMessage({height:height},'*');

}

//监听父页面发送的消息

window.addEventListener('message',function(event){

if(event.data==='resize'){

sendHeight();

}

});

</script>

在父页面中的脚本:

<script>

//监听嵌入页面发送的消息

window.addEventListener('message',function(event){

if(event.data.height){

variframe=document.getElementById('my-iframe');

iframe.style.height=event.data.height+'px';

}

});

//调整iframe高度

functionresizeIframe(){

variframe=document.getElementById('my-iframe');

iframe.contentWindow.postMessage('resize','*');

}

//在窗口大小变化时调整iframe高度

window.addEventListener('resize',resizeIframe);

</script>

<iframeid="my-iframe"src="embedded-page.html"></iframe>

上述代码示例中,嵌入页面通过sendHeight()函数将其内容的高度传递给父页面。父页面监听嵌入页面发送的消息,并根据接收到的高度值调整iframe的高度。还可以通过监听窗口大小变化事件来实时调整iframe的高度。

这些方法可以帮助您实现iframe窗口的自适应高度。请注意,当使用跨域通信(postMessage)时,确保在通信过程中进行安全性检查以防止恶意代码的注入。


版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门