vue项目如何内嵌如iframe页面

85 阅读1分钟

父页面

    <iframe :src="url" :style="{width:style.width,height:style.height}" frameborder="0">       接收传来的页面即子页面

在vue页面中

     created () {

           window.addEventListener("message", this.receiveMessageFromIframePage, false);

       },

    receiveMessageFromIframePage(event){

          if (event.data && event.data.data && event.data.data.type) {

                   // do somthing, you want to do

                }

    }

子页面

postMessage(message,targetOrigin,[transfer]);

注释:

    message:将要发送到其他window的数据。

    targetOrigin:指定那些窗口能接收到消息事件,其值可以是字符串 “*” 表示无限制,或者是一个URI。

    transfer:是一串和message同时传递的Transferable对象,这些对象的所有权将被转移给消息的接收方,而发送方将不再保留所有权。

    postMessage方法被调用时,会在所有页面脚本执行完毕之后像目标窗口派发一个 MessageEvent 消息,该MessageEvent消息有四个属性需要注意:

    type:表示该message的类型

    data:为 postMessage 的第一个参数

    origin:表示调用postMessage方法窗口的源

    source:记录调用postMessage方法的窗口对象