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电脑改装win7系统BIOS怎么设置?

    Win10电脑改装win7系统BIOS怎么设置? 了解BIOS 下载Win7 ISO文件 设置启动项 安装Win7系统 了解BIOS BIOS是计算机上的基本输入/输出系统,是计算机启动时运行的程序。要改装Win7系统,需要在BIOS中进行一些设置。 首先,开机时按下DEL或F2键进入BIOS设置界面。 下载Win7 ISO文件 在改装Win7系统之前,需要…

    2023-08-20
    00
  • Win10系统怎么在线重装?Win10系统装机工具教程

    Win10系统怎么在线重装?Win10系统装机工具教程 Win10系统在线重装的原因 Win10系统装机工具的下载和安装 Win10系统在线重装的步骤 Win10系统在线重装的注意事项 Win10系统在线重装的原因 Win10系统在线重装是为了解决因系统故障或其他原因导致系统无法正常启动的问题。 在这种情况下,重新安装系统是解决问题的最好方法。但是,传统的重…

    2023-08-28
    00
  • PPT超链接字体颜色怎么改(PPT中超链接字体颜色的调整方法)

    随着各行各业日常工作中对PPT的频繁使用,PPT中的超链接功能经常被用于跳转到其他幻灯片或外部网页。但有时,为了更好地与幻灯片设计相协调,我们需要调整超链接的字体颜色。那么,如何在PPT中修改超链接的字体颜色呢?接下来,我将为大家详细介绍这一过程。 1. 打开您的PPT文档 首先,确保您已经打开了要编辑的PPT文档,并找到了包含超链接的幻灯片。 2. 选择含…

    2023-09-26
    00
  • Excel下拉选择?如何在Excel中使用下拉选择

    Excel下拉选择?如何在Excel中使用下拉选择 什么是Excel下拉选择 如何创建Excel下拉选择 如何修改Excel下拉选择 如何删除Excel下拉选择 什么是Excel下拉选择 Excel下拉选择是指在单元格中设置一个下拉列表,用户可以从列表中选择合适的选项填写单元格,避免了手动输入的错误和不规范。 如何创建Excel下拉选择 创建Excel下拉选…

    2023-06-24
    00
  • 2021年英特尔CPU性能天梯图最新版 英特尔CPU性能天梯图排行榜完整版

    2021年英特尔CPU性能天梯图最新版 英特尔酷睿i9系列 英特尔酷睿i7系列 英特尔酷睿i5系列 英特尔酷睿i3系列 英特尔酷睿i9系列 英特尔酷睿i9系列是英特尔旗下最高端的处理器系列,适用于需要高性能的专业用户和游戏玩家。 英特尔酷睿i9-11900K:拥有8个核心和16个线程,基础时钟频率为3.5GHz,最大时钟频率为5.3GHz。 英特尔酷睿i9-…

    2023-06-19
    00

联系我们

QQ:183718318

在线咨询: QQ交谈

邮件:183718318@qq.com

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

关注微信