vue使用iframe内嵌页面并进行数据传输最简单的方式

使用场景

当前项目中需要嵌套一个其他项目中的页面

实现过程

父页面

//创建一个iframe标签 并绑定id或者ref进行获取dom  src为对应通信项目的路径地址 load事件为iframe加载完毕的回调
<div class="page-container">
    <iframe id="iframeID" :src="updateLogUrl" frameborder="0" width="100%" height="100%" 
     @load="loadIframe" />
  </div>


 async mounted() {
    this.updateLogUrl = `https://www.巴拉巴拉.com`;
  },
 loadIframe() {
//防止在子页面接收之前发送
      setTimeout(() => {
        let iframeWin = document.getElementById("iframeID").contentWindow;
        let params = {};需要通信的参数
        iframeWin.postMessage(JSON.stringify(params), "*");消息发送
      }, 100);
    },

子页面

// 我是直接放到了app.vue内mountd事件接收消息
window.addEventListener('message', function(event) {
  // 检查消息来源,确保安全
  if (event.origin !== 'http://allow-origin.com') return;
  
  console.log('Received message:', event.data);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值