使用iframe的时候,往往因为高度的问题发愁,一般情况下,我们都要让iframe进行自适应才能使得页面展示体验更好,如何自适应了?首先我们要先得到资源的文档流的高度和脱离文档流的高度,便可以做到根据内容的高度进行动态改变iframe的高度,从而实现自适应。
文档流的高度很容易获取到:
let h1 = iframe.contentWindow.document.getElementById('app').scrollHeight
这里我之所以是通过根据ID获取到DOM元素,是因为我的资源页面的html和body的高宽是100%,很多时候全局样式中都会这么设置
脱离文档流的高度:
let a = iframe.contentWindow.document.body.getElementsByClassName('abc');
let h2 = 0;
for(let b of a){
h2 += b.scrollHeight;
}
iframe的内容高度也就是:
iframe.height = h1+h2
;
动态改变可以利用window.setInterval([动态获取内容高度并改变iframe高度的函数],[隔多少毫秒执行一次])