我正在使用JavaScript的postMessage将整个网站的高度发送到其他网站(不同的域名)。当我第一次使用iframe加载页面时,这给我一个错误的高度,我不太确定为什么。但是当我再次刷新页面时,它给了我合适的高度
这是发送代码:
let height = body.offsetHeight;
parent.postMessage(height , '*');
这是接收端的代码:
HTML:
<iframe id="myFrame" src="urlOfsender" scrolling="no" style="width:100%;" frameborder="0" sandbox="allow-top-navigation allow-same-origin allow-scripts allow-forms"></iframe>
javascript:
if (window.addEventListener) {
window.addEventListener('message', data, false);
} else if (window.attachEvent) {
window.attachEvent('onmessage', data);
}
function data(e) {
let iframe = document.querySelector('#myFrame');
if (e.origin === '<<URLOFSENDER>>') {
let elementsData = e.data;
iframe.height = elementsData + "px";
}
}