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

Posted sangzs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
    }
}

 

以上是关于H5新增的postMessage跨域解决方案Demo的主要内容,如果未能解决你的问题,请参考以下文章

H5中postMessage解决数据跨域

h5h5数据跨域交换postMessage用法

postMessage解决跨域问题

window.postMessage解决跨域

html5 postMessage解决跨域跨窗口消息传递

html5 postMessage解决跨域跨窗口消息传递