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

相关推荐

  • MAC下微调系统音量的技巧

    MAC下微调系统音量的技巧 使用快捷键微调音量 使用鼠标微调音量 使用命令行微调音量 使用快捷键微调音量 在MAC系统中,可以使用快捷键来微调音量。具体来说: 按下“Shift + Option”组合键 同时按下“音量增加”或“音量减少”键 这样就可以微调音量了。 使用鼠标微调音量 除了使用快捷键,还可以使用鼠标来微调音量。具体来说: 点击菜单栏上的音量图标…

    2023-07-01
    00
  • msgamingoverlay一直跳出来的解决方法(Win10Win11通用)

    解决 Win10/Win11 中 msgamingoverlay 一直跳出来的问题 问题背景 解决方案 总结 问题背景 许多 Win10/Win11 用户都遇到了 msgamingoverlay 一直跳出来的问题。msgamingoverlay 是 Windows 自带的一个游戏模式,用于在游戏过程中记录游戏画面、截图和录制视频等操作。但是,有些用户在游戏过…

    2023-07-06
    00
  • Win10加入预览体验计划注册一直报错0x800BFA07

    Win10加入预览体验计划注册一直报错0x800BFA07 问题原因 解决方案 注意事项 问题原因 加入预览体验计划是Win10系统中的一个功能,可以提前体验新版本的系统,但有些用户在注册时会遇到错误代码0x800BFA07,无法成功加入。 这个错误代码通常是由于系统更新服务未开启导致的,或是系统中的某些组件出现了问题。 解决方案 针对这个问题,可以尝试以下…

    2023-07-25
    00
  • Windows 7旗舰版原版下载和安装教程

    Windows 7旗舰版原版下载和安装教程 Windows 7旗舰版原版下载 Windows 7旗舰版安装教程 Windows 7旗舰版原版下载 如果你想要下载Windows 7旗舰版的原版,可以按照以下步骤进行: 打开Microsoft官网,进入 Windows 7下载页面。 选择你需要的语言和位数,点击“确认”。 选择“ISO文件”并点击“下载”。 等待…

    2023-06-07
    00
  • Linux修改PATH路径的方法汇总

    Linux修改PATH路径的方法汇总 介绍 使用export命令 使用profile文件 使用bashrc文件 使用/etc/environment文件 介绍 在Linux系统中,PATH是一个环境变量,它包含了一组用冒号分隔的目录路径,系统会在这些路径下查找执行文件。如果需要安装新的软件包或者自定义的脚本文件,就需要添加路径到PATH中。 使用export…

    2023-06-27
    00

联系我们

QQ:183718318

在线咨询: QQ交谈

邮件:183718318@qq.com

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

关注微信