您的位置:首页 > 财经 > 产业 > 惠城发布最新通知_有必要花钱学视频剪辑吗_安卓aso优化排名_谷歌商店paypal官网

惠城发布最新通知_有必要花钱学视频剪辑吗_安卓aso优化排名_谷歌商店paypal官网

2024/10/6 0:37:05 来源:https://blog.csdn.net/owo_ovo/article/details/141230360  浏览:    关键词:惠城发布最新通知_有必要花钱学视频剪辑吗_安卓aso优化排名_谷歌商店paypal官网
惠城发布最新通知_有必要花钱学视频剪辑吗_安卓aso优化排名_谷歌商店paypal官网

前言

postMessage是HTML5引入的API,允许来自不同源的脚本采用异步方式进行通信,实现跨文本文档多窗口跨域消息传递

使用

postMessage(message, targetOrigin):

  • message: 发送的数据,可以是字符串、对象等。
  • targetOrigin: 目标窗口的域名。为安全起见,尽量避免使用 ‘*’,而应该明确指定目标的域名。

当 iframe 作为子页面时,它可以使用 window.parent.postMessage() 向其父页面发送消息,无论父页面与 iframe 是否属于同一域。

当父页面想与其嵌入的 iframe 通信时,可以通过获取 iframe 元素的 contentWindow 来调用 postMessage(),将消息发送给子页面。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Parent</title>
</head><body><h1>Parent</h1><button id="sendMessage">给iframe发消息</button><iframe id="childFrame" src="son.html" width="600" height="400"></iframe><script>const iframe = document.getElementById('childFrame');const sendMessageButton = document.getElementById('sendMessage');// 发送消息到 iframesendMessageButton.addEventListener('click', () => {const message = { text: 'Hello World!' };iframe.contentWindow.postMessage(message, '*'); // 使用 '*' 作为目标域});// 监听来自 iframe 的消息window.addEventListener('message', (event) => {// 安全起见,检查 event.origin 消息来源console.log('接收iframe页的消息:', event.data);});</script>
</body></html>

iframe

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Child</title>
</head><body><h1>iframe</h1><button id="sendMessage">给父元素发消息</button><script>// 监听来自父页面的消息window.addEventListener('message', (event) => {console.log('parent页的消息:', event.data);});// 发送消息到父页面const sendMessageButton = document.getElementById('sendMessage');sendMessageButton.addEventListener('click', () => {const message = { text: 'iframe message!' };window.parent.postMessage(message, '*'); // 使用 '*' 作为目标域});</script>
</body></html>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com