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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
白马号白马号

相关推荐

  • 0x00000709无法连接网络共享打印机

    解决[0x00000709无法连接网络共享打印机]问题 问题原因 解决方案 注意事项 问题原因 在使用网络共享打印机时,可能会遇到无法连接的情况,出现0x00000709错误提示。这通常是由以下原因造成的: 网络共享打印机配置错误 网络连接异常 驱动程序错误或过期 解决方案 针对以上问题,以下是几种可能的解决方案: 检查网络共享打印机配置:确认网络共享打印机…

    2023-06-18
    00
  • Win7如何安装XP系统?(双系统安装教程)

    Win7如何安装XP系统?(双系统安装教程) 准备工作 分区 安装XP系统 设置启动项 总结 准备工作 在安装XP系统前,我们需要做一些准备工作: 备份重要数据,以免出现意外情况导致数据丢失。 准备一个XP系统安装盘或者U盘。 确保电脑硬件能够支持XP系统。 分区 在安装XP系统前,我们需要对硬盘进行分区,以便安装XP系统。 打开“计算机管理”,选择“磁盘管…

    2023-05-25
    00
  • C盘中的esd文件可以删除吗?

    以C盘中的esd文件可以删除吗? 什么是esd文件? esd文件可以删除吗? 结论 什么是esd文件? ESD是Windows系统升级安装程序的一种文件格式,它是Electronic Software Distribution的缩写,也就是电子软件分发。在Windows 10系统升级的过程中,系统会下载一个ESD文件,该文件包含了升级所需的所有文件和数据。 …

    2023-06-22
    00
  • 电脑老是蓝屏怎么修复?解决蓝屏问题的方法

    电脑老是蓝屏怎么修复?解决蓝屏问题的方法 蓝屏问题的原因 解决蓝屏问题的方法 预防蓝屏问题的方法 蓝屏问题的原因 蓝屏问题是指电脑在运行过程中出现蓝色的屏幕,并停止响应。蓝屏问题的原因可能有以下几种: 硬件故障,如内存或硬盘故障 软件冲突,如安装了不兼容的软件或驱动程序 系统文件损坏,如系统文件被病毒感染或意外删除 过热,如电脑散热不良导致温度过高 解决蓝屏…

    2023-06-15
    00
  • Win10玩霍格沃茨之遗闪退怎么办?霍格沃茨之遗闪退的解决方法

    Win10玩霍格沃茨之遗闪退怎么办?霍格沃茨之遗闪退的解决方法 霍格沃茨之遗闪退的原因 解决霍格沃茨之遗闪退的方法 更新驱动程序 更改兼容性设置 重新安装游戏 霍格沃茨之遗闪退的原因 霍格沃茨之遗是一款非常受欢迎的游戏,但是在Windows 10上玩时,有可能会遇到游戏闪退的问题。这个问题可能有以下原因: 过时的驱动程序 兼容性问题 游戏文件损坏 解决霍格沃…

    2023-08-17
    00

联系我们

QQ:183718318

在线咨询: QQ交谈

邮件:183718318@qq.com

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

关注微信