# 九.postMessage
postMessage (opens new window)
http://localhost:3000/a.html 与 http://localhost:4000/b.html 之间通信
a.html 中通过 iframe 嵌套 b 页面,现在利用 postMessage 可以实现 a --> b, b --> a 传递消息
# 1.启动服务
node a.js
1
node b.js
1
# 2.打开页面
http://localhost:3000/a.html
<iframe style="display:none;" id="frame" src="http://127.0.0.1:4000/b.html"></iframe>
<script type="text/javascript">
window.onload = function () {
let frame = document.getElementById("frame")
// 给子页面传递数据
frame.contentWindow.postMessage("a.html页面内容", "http://127.0.0.1:4000/")
window.onmessage = function (e) {
//判断消息来源
if (e.origin == 'http://127.0.0.1:4000') {
//得到子页面的信息
document.write(e.data)
}
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
http://localhost:4000/b.html
window.onmessage = function(e) {
//得到父页面的消息
document.write(e.data)
//给父页面发送消息
e.source.postMessage("b.html页面内容", e.origin)
}
1
2
3
4
5
6
2
3
4
5
6
← 八.hash 十.websocket →