iframe 自适应高度的六种方法介绍

以iframe自适应高度的六种方法介绍

方法一:使用onload事件

这是最简单的方法,可以在iframe加载完毕后自适应高度。

示例代码:

  
    <iframe src=\"\" onload=\"this.style.height=this.contentDocument.body.scrollHeight +\'px\' \" ></iframe>
  

方法二:使用postMessage

使用postMessage可以在iframe中嵌入脚本,通过postMessage来传递高度数据。

示例代码:

  
    // 在iframe中添加脚本
    <script>
      window.addEventListener(\'message\', function(e) {
        if (e.origin !== \' return;
        var height = e.data;
        document.querySelector(\'iframe\').style.height = height + \'px\';
      });
    </script>

    // 在父页面中发送高度数据
    <iframe src=\"\"></iframe>
    <script>
      var iframe = document.querySelector(\'iframe\');
      window.setInterval(function() {
        iframe.contentWindow.postMessage(iframe.contentDocument.body.scrollHeight, \'
      }, 1000);
    </script>
  

方法三:使用MutationObserver

MutationObserver可以观察到DOM节点的变化,从而自适应iframe高度。

示例代码:

  
    // 在iframe中添加脚本
    <script>
      var observer = new MutationObserver(function(mutations) {
        var height = document.body.scrollHeight;
        window.parent.postMessage(height, \'
      });
      observer.observe(document.body, { attributes: true, childList: true, characterData: true });
    </script>

    // 在父页面中接收高度数据
    <iframe src=\"\"></iframe>
    <script>
      window.addEventListener(\'message\', function(e) {
        if (e.origin !== \' return;
        var height = e.data;
        document.querySelector(\'iframe\').style.height = height + \'px\';
      });
    </script>
  

方法四:使用setInterval

使用setInterval可以定时检查iframe高度是否变化,从而自适应iframe高度。

示例代码:

  
    <iframe src=\"\" id=\"myiframe\"></iframe>
    <script>
      function resizeIframe() {
        var iframe = document.getElementById(\'myiframe\');
        iframe.style.height = iframe.contentWindow.document.body.scrollHeight + \'px\';
      }
      window.setInterval(resizeIframe, 1000);
    </script>
  

方法五:使用resize事件

使用resize事件可以在iframe大小变化时自适应iframe高度。

示例代码:

  
    <iframe src=\"\" id=\"myiframe\" onload=\"resizeIframe()\"></iframe>
    <script>
      function resizeIframe() {
        var iframe = document.getElementById(\'myiframe\');
        iframe.style.height = iframe.contentWindow.document.body.scrollHeight + \'px\';
      }
      window.addEventListener(\'resize\', resizeIframe);
    </script>
  

方法六:使用IntersectionObserver

使用IntersectionObserver可以观察到iframe是否进入视口,从而自适应iframe高度。

示例代码:

  
    <iframe src=\"\" id=\"myiframe\"></iframe>
    <script>
      var observer = new IntersectionObserver(function(entries) {
        entries.forEach(function(entry) {
          if (entry.isIntersecting) {
            var iframe = document.getElementById(\'myiframe\');
            iframe.style.height = iframe.contentWindow.document.body.scrollHeight + \'px\';
            observer.unobserve(entry.target);
          }
        });
      });
      observer.observe(document.getElementById(\'myiframe\'));
    </script>
  

声明:所有白马号原创内容,未经允许禁止任何网站及个人转载、采集等一切非法引用。本站已启用原创保护,有法律保护作用,否则白马号保留一切追究的权利。发布者:白马号,转转请注明出处:https://www.bmhysw.com/article/42155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
白马号白马号

相关推荐

  • win10自带杀毒软件的关闭方法及注意事项

    大纲 介绍win10自带杀毒软件 关闭win10自带杀毒软件的方法 注意事项 win10自带杀毒软件的关闭方法及注意事项 介绍win10自带杀毒软件 Windows Defender是微软公司开发的一款防病毒软件,它内置于Windows 10操作系统中,可以提供基本的安全保护。Windows Defender可以对计算机进行常规的病毒扫描和实时保护,以确保计…

    2023-05-13
    00
  • 电脑鼠标动不了怎么办?Win7鼠标故障排除方法

    电脑鼠标动不了怎么办?Win7鼠标故障排除方法 可能的原因 故障排除方法 小结 可能的原因 鼠标是电脑最重要的输入设备之一,如果鼠标无法使用,会给我们的工作和生活带来很大的不便。以下是一些可能导致鼠标无法使用的原因: 鼠标接口松动或者损坏 鼠标驱动程序损坏 操作系统故障 鼠标本身故障 故障排除方法 如果你的鼠标无法使用,可以按照以下步骤进行排除故障: 步骤一…

    2023-06-02
    00
  • 0x80072ee2激活失败怎么解决(windows激活超时怎么办)

    第一个问题:没有开始按钮,Windows预览体验计划显示空白,解决方法如下: (1)打开PowerShell as Administator,也就是命令提示符(管理员权限),分别复制以下5条命令: ①$path = “HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataColl…

    2022-03-15
    00
  • 比360好的电脑安全软件(5个杀毒神器比360强M倍)

    今天给大家分享5个杀毒神器,让你的电脑干干净净,建议收藏起来哟! 1、Windows Defender随着Win10系统的更新已经日趋完善,它可以很好的解决我们对安全的需要。 可以帮我们检测及清除一些潜藏在操作系统里的间谍软件及广告软件,这样可以很好的保护我们的计算机不受到一些间谍软件的安全威胁及控制,更好的保护你的隐私。 2、火绒这是一款集杀防管控于一体的…

    2022-07-19 投稿
    00
  • Win10你的电脑未能启动的有效修复方法

    Win10你的电脑未能启动的有效修复方法 造成电脑无法启动的原因 电脑无法启动的有效解决方法 安全模式启动 系统还原 启动修复 重新安装Windows系统 造成电脑无法启动的原因 Windows 10电脑出现无法启动的情况,可能是由于以下原因造成的: 系统文件损坏或遭到病毒攻击 硬件故障,如硬盘故障或内存故障 电源故障或电脑过热 电脑无法启动的有效解决方法 …

    2023-07-24
    00

联系我们

QQ:183718318

在线咨询: QQ交谈

邮件:183718318@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信