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专业版声卡驱动正常但没有声音时,这可能是由以下原因造成的: 音量被静音或关闭了 音频输出被设置错误 声卡驱动程序需要更新 音频设备出现故障 解决方案 以下是几种可能的解决方案: 检查音量设置:首先,确保音量没有被静音或关闭。在任务栏上单击音量图标,然后检查…

    2023-07-22
    00
  • 声卡驱动安装方法解析(简单驱动安装教程)

    声卡驱动安装方法解析(简单驱动安装教程) 为什么需要安装声卡驱动 如何确定需要安装哪种声卡驱动 声卡驱动安装步骤 常见问题及解决方法 为什么需要安装声卡驱动 声卡驱动是计算机中的一个重要组成部分,它负责控制声卡设备的工作。如果没有安装声卡驱动,计算机就无法识别声卡设备,也无法播放声音。因此,安装声卡驱动是使用计算机的基本要求之一。 如何确定需要安装哪种声卡驱…

    2023-05-26
    00
  • Win10怎么删除驱动再安装?Win10卸载设备驱动重新安装的方法

    Win10怎么删除驱动再安装?Win10卸载设备驱动重新安装的方法 Win10删除设备驱动的方法 Win10重新安装设备驱动的方法 Win10删除设备驱动的方法 在使用电脑过程中,我们经常需要安装或卸载设备驱动。卸载设备驱动通常有两种方法,一种是通过设备管理器进行卸载,另一种是通过控制面板进行卸载。 方法一:通过设备管理器卸载设备驱动 点击“开始”菜单,选择…

    2023-08-05
    00
  • 打印机如何进行双面打印?Win7下双面打印步骤

    如何进行双面打印?Win7下双面打印步骤 Step 1:确认打印机是否支持双面打印 Step 2:打开打印机属性设置 Step 3:选择双面打印选项 Step 4:调整页面方向和边距 Step 5:开始打印 Step 1:确认打印机是否支持双面打印 首先,您需要确认您的打印机是否支持双面打印功能。如果您不确定您的打印机是否支持此功能,请查看您的打印机说明书或…

    2023-06-01
    00
  • 火炬之光2存档保存位置(火炬之光2存档的存储路径)

    本文主要介绍火炬之光2存档保存位置,为玩家提供方便快捷的存档管理方法。 大纲 火炬之光2存档的默认保存位置 如何修改存档保存位置 存档备份方法 火炬之光2存档的默认保存位置 火炬之光2是一款非常受欢迎的角色扮演游戏,许多玩家都希望知道游戏存档的默认保存位置。 在Windows系统下,火炬之光2的存档默认保存在以下文件夹中: C:\\Users\\你的用户名\…

    2023-05-22
    00

联系我们

QQ:183718318

在线咨询: QQ交谈

邮件:183718318@qq.com

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

关注微信