iframe窗口根据内容自适应大小

该博客介绍了如何在网页中使iframe子窗体内容不被遮盖且无滚动条,通过JavaScript动态调整iframe的宽度和高度以适应内容变化。使用MutationObserver监听子窗体内容动态更新,确保子窗体始终能完整显示其内容。
摘要由CSDN通过智能技术生成

需求
需要让iframe子窗体在页面显示出的内容不被遮盖且没有滚轴,能够完整的显示出来。
实现

  window.onload = function () {
  		//1.获取子窗体
        var iframes = document.getElementsByClassName("formIframe");
        for (let i = 0; i < iframes.length; i++) {
            var iframeWindow = iframes[i].contentWindow;
            var iframeDocEle = iframeWindow.document.documentElement
            //2.根据子窗体的滚轴长宽并动态改变子窗体的长宽
            var iframeWidth, iframeHeight;
            iframeWidth = iframeDocEle.scrollWidth;
            iframeHeight = iframeDocEle.scrollHeight;
            iframes[i].width = iframeWidth;
            iframes[i].height = iframeHeight;
            //2.监听子窗体的的滚轴长度
            // 选择将观察突变的节点
            var targetNode = iframeDocEle;
			//3.监听后续子窗体内容的动态变化并在动态的随着更改子窗体的大小
            // 3.1观察者的选项(要观察哪些突变)
            var config = {attributes: true, childList: true, subtree: true};
            // 3.2当观察到突变时执行的回调函数
            var callback = function (mutationsList) {
            
                var iframeWidth, iframeHeight;
                iframeWidth = iframeDocEle.scrollWidth;
                iframeHeight = iframeDocEle.scrollHeight;
                iframes[i].width = iframeWidth;
                iframes[i].height = iframeHeight;
            };
            //3.3 创建一个链接到回调函数的观察者实例
            var observer = new MutationObserver(callback);
            // 3.4开始观察已配置突变的目标节点
            observer.observe(targetNode, config);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值