1、来源介绍
(1)通常情况下,当且仅当它们源自的页面共享相同的协议,端口号和主机(也称为“同源策略”),不同页面上的脚本允许彼此访问。
(2)==window.postMessage()==提供了一个受控的机制来安全地规避这个限制(如果使用得当的话)—就是本文所讲实现跨域通信。
2、语法介绍
(1)window.postMessage()方法可以安全地实现Window对象之间的跨域通信。例如页面和嵌入其中的iframe之间。
发送消息的基本语法:
targetWindow.postMessage(message, targetOrigin, [transfer]);
targetWindow–接收消息的窗口的引用:
- Window.open
- Window.opener
- HTMLIFrameElement.contentWindow
- Window.parent (本身为子页面,将父页面作为消息接受窗口)
- Window.frames +索引值
message:
- 发送到目标窗口的消息
targetOrigin:
- 指定目标窗口的来源,必须与消息发送目标相一致,可以是字符串“*”或URI
- *表示任何目标窗口都可接收