js使用XDM

undefined 1月前 ⋅ 61 阅读

XDM是什么?

跨文档消息传递,支持不同源的文档之间传递消息。

XDM的优点是什么?

  • 1、XDM可以支持不同源的文档之间通信,也保证了安全性;
  • 2、消息传递时允许发送被序列化的数据;

代码实现

page1---html部分

<button>发送给page2</button>
<iframe 
    id="receiverFrame" 
    src="http://127.0.0.1:5500/%E8%84%9A%E6%9C%AC/page2.html" 
    style="width:100%; height:200px; border:1px solid #ccc">
</iframe>

page1---js部分

发送消息给page2

const btn = document.querySelector("button");
btn.addEventListener("click", ()=>{
    const receiverFrame = document.querySelector("#receiverFrame").contentWindow;
    receiverFrame.postMessage("hello,world",'http://127.0.0.1:5500/%E8%84%9A%E6%9C%AC/2.html')
});

监听page2发送的消息

window.addEventListener("message",(event)=>{
    console.log(event.data);
})

page2---html部分

<canvas id="canvasId"></canvas>

page2---js部分

绘制页面

const canvasId = document.querySelector("#canvasId");
const contextCanvas = canvasId.getContext("2d");
contextCanvas.beginPath();
contextCanvas.fillRect(10,10,100,100);
contextCanvas.fillStyle = "red";
contextCanvas.closePath();

监听page1发送的消息和发送消息给page1

 window.addEventListener('message', (event) => {
    console.log(event.data,event.source);
    event.source.postMessage("page1,我收到你的信息了","http://127.0.0.1:5500/%E8%84%9A%E6%9C%AC/1.html")
});

全部评论: 0

    我有话说: