window.parent.postMessage는 iframe 상위 페이지와 하위 페이지의 도메인 이름이 다를 때 발생하는 도메인 간 문제를 해결합니다.
포함된 iframe
페이지는 일반적으로 상위 페이지의 개체를 가져오거나 window.parent
사용 합니다.window.top
window
하위 페이지의 상위 페이지 매개변수 想使用(或传递给)
는 있지만 두 도메인 이름이 다르기 때문에 도메인 간 문제가 발생합니다 .
해결책
1. 상위 페이지 모니터링 message
, 쓰기 수정
//监听单个事件
window.addEventListener('message', function (msg) {
console.log(msg)
})
//监听多个事件,可以使用if来判断 msg里边的参数进行区分
2. 서브페이지는 message
매개변수가 포함된 메시지를 보냅니다.
// window.parent 是 iframe 子页面获取父页面的 window 对象
// 后面的 * 号就是处理跨域问题的,任何域名都不会出现跨域问题
window.parent.postMessage("需要传递的参数", '*')
// 也可以指定传送域名地址,这个域名不会出现跨域问题,写父页面(接收)域名地址
window.parent.postMessage("需要传递的参数", 'http://0.0.0.0:8080')
// 传递的参数可以是数组,对象,字符串等