使用帖子消息调整跨网域iframe的高度

时间:2020-09-23 05:16:34

标签: javascript html css iframe

我正在使用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";
    }
  }

0 个答案:

没有答案