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

相关推荐

  • 笔记本电脑键盘功能基础知识解答(全面了解键盘功能)

    笔记本电脑键盘功能基础知识解答(全面了解键盘功能) 了解键盘基本布局 掌握键盘常用功能键 学习键盘快捷键 维护键盘的正确方法 了解键盘基本布局 键盘是输入设备中的一种,是电脑与用户之间的桥梁。笔记本电脑键盘一般由字母、数字、符号、功能、方向键等组成。 键盘的基本布局是QWERTY键盘,由字母QWERTY排列组成。它是最常见的键盘布局,被广泛应用于各种电脑、手…

    2023-05-28
    00
  • U盘重装Win7系统如何操作?U盘重装系统图文版教程

    U盘重装Win7系统如何操作?U盘重装系统图文版教程 准备工作 制作U盘启动盘 修改BIOS设置 安装Win7系统 准备工作 在进行U盘重装Win7系统之前,需要做好以下准备工作: 一台已经安装好Win7系统的电脑 一个容量不小于4GB的U盘 下载Win7系统的ISO镜像文件 下载制作U盘启动盘的软件 制作U盘启动盘 制作U盘启动盘的步骤如下: 将U盘插入电…

    2023-07-16
    00
  • Linux crontab命令使用实例汇总

    Linux crontab命令使用实例汇总 什么是Linux crontab命令 Linux crontab命令常用选项 Linux crontab命令使用实例 Linux crontab命令实用技巧 什么是Linux crontab命令 Linux crontab命令是一个定时任务管理器,可以在指定的时间执行指定的命令或脚本。它是Linux系统自带的一款工…

    2023-06-26
    00
  • cdr文件怎么打开?教你如何打开cdr文件的方法和工具

    如何打开cdr文件?教你如何打开cdr文件的方法和工具 什么是cdr文件? cdr文件的常见使用场景 如何打开cdr文件 使用CorelDRAW软件打开cdr文件 使用Inkscape软件打开cdr文件 使用Adobe Illustrator软件打开cdr文件 总结 什么是cdr文件? cdr文件是CorelDRAW软件所创建的矢量图形文件,是一种专业的设计…

    2023-06-22
    00
  • oled屏幕和amoled区别(屏幕材质amoled和oled哪个好 -特点介绍)

    OLED又称为有机发光半导体。是一种利用多层有机薄膜结构产生电致发光的器件。OLED分为PMOLED和AMOLED。早期量产OLED屏都使用的PMOLED,自然就比AMOLED差。但随着技术的发展,现在大部分OLED屏幕都采用AMOLED,这种情况,两者指向同一个东西就无差别了。 1、OLED的特点由OLED技术制造的屏幕,我们叫它OLED屏,OLED屏幕与…

    2022-03-13
    00

联系我们

QQ:183718318

在线咨询: QQ交谈

邮件:183718318@qq.com

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

关注微信