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键盘失灵怎么办?Mac键盘部分按键失灵解决方法 检查键盘连接 清洁键盘 重启电脑 尝试使用外部键盘 联系苹果客服 1. 检查键盘连接 如果Mac键盘部分按键失灵,首先需要检查键盘连接是否松动。可以将键盘从电脑上拔下来,再重新插入,确保连接稳固。如果使用的是蓝牙键盘,可以将键盘重新连接一次,或者将电池更换一下。 2. 清洁键盘 如果键盘连接稳固,但是仍然…

    2023-07-04
    00
  • Win10怎么设置系统审核事件?

    Win10怎么设置系统审核事件? 什么是系统审核事件? 如何设置系统审核事件? 设置系统审核事件的注意事项 什么是系统审核事件? 系统审核事件是指在Windows系统中,当用户执行某种操作时,系统会自动产生并记录下相应的事件记录,以便管理员或其他用户对系统的操作行为进行审计和监控。 如何设置系统审核事件? 在Windows10操作系统中,设置系统审核事件可以…

    2023-08-07
    00
  • foxmail邮箱登陆别人的账号,别人会知道吗

    Foxmail邮箱登陆别人的账号,别人会知道吗? 答案是肯定的,如果你登陆别人的Foxmail邮箱账号,别人一定会知道。 首先,Foxmail邮箱有一个很重要的功能,就是登陆历史记录功能。也就是说,每次登陆Foxmail邮箱账号,Foxmail都会记录下登陆的时间、IP地址、浏览器等信息。因此,如果你登陆别人的Foxmail邮箱账号,别人一定会发现你的登陆历…

    2023-01-02
    00
  • excel中怎么设置下拉选项内容(选择数据验证正确用法)

    excel如何设置下拉框选项?我们在做excel表格的时候,要是需要用到下拉框功能该怎么设置呢?大部分人都知道Excel有下拉框的功能,却不清楚具体的设置方法,今天小Q给大家介绍设置下拉框选项的二种方法。 第一种:那就是从已有的数据中制作下拉框。 1、打开Excel文档,选中我们需要做下拉框的表格。 2、选择数据模块里的“数据验证”功能。 3、在“允许”下拉…

    2022-05-22
    00
  • Win10电脑桌面图标有蓝底怎么去除?Win10桌面图标有蓝底的解决方法

    Win10电脑桌面图标有蓝底怎么去除?Win10桌面图标有蓝底的解决方法 出现蓝底的原因 解决蓝底的方法 总结 出现蓝底的原因 在Win10系统中,出现桌面图标有蓝底的情况,一般是因为在文件属性中选择了“压缩以节省磁盘空间”选项。 当这个选项被勾选时,系统会将文件压缩,以达到节省磁盘空间的目的。但是,这样做会导致图标出现蓝底的情况。 解决蓝底的方法 下面介绍…

    2023-08-21
    00

联系我们

QQ:183718318

在线咨询: QQ交谈

邮件:183718318@qq.com

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

关注微信