iframe 传值

方法一 vue

父传子

            <iframe
              class="compare-item"
                title="对比一"
                id="iframe1"
                ref="iframe1"
                :src="iframItem1"
                :key="iframItem1"
                @load="iframeOnload('iframe1')"
              ></iframe>

let t = new Date().getTime();
      this.iframItem1 = arr[0]+ "&t="+t;
      this.iframItem2 = arr[1]+ "&t="+t;

iframeOnload(id) {
      let iframe = this.$refs[id];
      let obj = { onlineType: "single",isTitle: true};
      iframe.contentWindow.postMessage(obj, "*");
    },

子级

mounted(){
    //怎样监听iframe传过来的信息
    window.addEventListener("message", this.handleMessage);
  },

handleMessage(msg){
      if(!!msg.data.onlineType){
        this.onlineType = msg.data.onlineType
        if(!!msg.data.isTitle){
          this.onlineTitle = msg.data.isTitle
        }
      }
    },
unMounted(){
    window.removeEventListener("message", this.handleMessage)
  }

子传父

子级
// iframe 传给父级用 年鉴和年鉴对比用
      window.parent && window.parent.postMessage({'isFull':true},'*')
//父 iframe
window.addEventListener('message', (e) => {
      console.log(e.data.isFull);
    });
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容