vue父页面给iframe子页面传值

2023-08-11 15:56:05 浏览数 (2)

在vue父页面有两个个参数 名称和图标,需要把这两个参数传到iframe的地图里面,在地图触发绘点事件的时候,获取到传来的参数并且展示

vue:传值给子页面iframe

代码语言:javascript复制
// 传值给子页面iframe(2个参数)
            handleIframeLoad() {
                const iframeWindow = this.$refs.myIframe.contentWindow;
                const data = {
                    imgUrl: this.imgUrl,
                    name: this.name,
                };
                iframeWindow.postMessage(data, '*');
            },

iframe接收父页面的值 在iframe中,使用window.addEventListener监听message事件,然后在事件处理程序中获取传递的数据:

代码语言:javascript复制
<!-- iframe.html -->
<script>
// 监听来自vue父页面的消息
window.addEventListener('message', function(event) {
  const data = event.data;
  // 在这里处理接收到的消息
  console.log('Received message from parent:', data);
});
</script>

当父页面中的按钮被点击时,会将值传递给子页面的iframe元素。子页面通过监听message事件获取传递的值,并进行相应的处理。

这种方法需要父页面和子页面在同一个域名下,否则会因为浏览器的同源策略而导致通信失败。

0 人点赞