由于业务需求,页面需要使用iframe,并且需要做iframe高度自适应,在获取子页面的元素高度时发生跨域问题,随后看到postMessage事件,在本地调试能够正常监控事件的触发,
这是父页面监控事件的代码
window.addEventListener('message', function (e) {
console.log(e)
}, false);
这是子页面的代码
var height = document.getElementById("页面").offsetHeight;
window.parent.postMessage({ height: height });
随后更新到正式环境,发现父页面无法监控到事件的触发,随后仔细阅读文档,发现postMessage的参数targetOrigin是控制那些页面能够接收事件,随后加上"*",正式环境就能够正常监控到事件的触发了