针对window.open()打开的新窗口与原窗口之间的通信问题。
- 父窗口
window.open(’href‘, ‘_blank’) // href 跳转连接
window.addEventListener(‘message’, this.receiveMessage, false)`
// 子窗口发生变化后回调函数
receiveMessage (event) {
// event.data 发送过来的消息。
// event.origin 子窗口连接地址
if (event.origin !== url) return // 建议校验子窗口地址, url校验地址
if (event.data !== ‘01’) return
/* 执行触发函数 */
},
- 子窗口
// 使用opener.postManage 触发父窗口, data 需要向父窗口传递的参数
window.opener.postMessage(data, window.location)