使用iframe时动态获取内容高度

博客介绍了iframe页面内容由Vue编写,需加在JS处。因iframe嵌套存在跨域问题,可使用postMessage()将内容高度向外传,父页面获取高度后设置给iframe来解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用iframe时动态获取内容高度

iframe页面里的内容是由vue写的。
iframe要加在用js写的地方。

原理:iframe嵌套,会有跨域问题。
我们可以使用postMessage(),自行将内容高度不停的向外传。
父页面,获取到高度设置给iframe。ok

data () {
    return {
      infoMenu: infoMenu,
      indInfo:'',
      timer:'',
    }
  },
  mounted () {
    var _this = this
    _this.timer = setInterval(function(){
      top.postMessage(_this.$refs.dataCon.clientHeight,'*');
    },300)
  },
  beforeDestroy(){
    clearInterval(this.timer)
  },

父页面接收

<iframe src="http://www.lincoc.com/#/data/shanghaiImportBOL" id="iframe" height="auto" width="1170px" scrolling="no" style="min-height:560px;overflow:hidden;display:block;margin:0 auto;"></iframe>

<script>
	window.addEventListener("message", function (event) {
        // 子窗口发送过来的数据
        document.getElementById("iframe").height = event.data;
    }, false);
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值