H5新增的postMessage跨域解决方案Demo

Demo背景:html中使用iframe嵌入了跨域的vue项目,在html中将参数传入到跨越的vue项目中。

 

向跨越的子窗口中发送数据

function sendMessage(data) {
    // 通过 postMessage 向子窗口发送数据
   document.querySelector(".ifm_analysis").contentWindow.postMessage(data, "*")
}

在跨越的子窗口中接收数据

// 记录vue实例地址的变量
let currVM
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event) {
    // event.source.postMessage("", event.origin);
    // 页面转入子窗口页面时,启动检测监听的参数
    if (document.location.href.indexOf("consignew") > -1) {
        // 调用vue实例中的searchConsignsByIdArr方法
        currVM.searchConsignsByIdArr(event.data)
    }
}

 

posted @ 2018-03-13 17:11  最好的年纪  阅读(221)  评论(0编辑  收藏  举报