当前位置: 首页 > news >正文

前端 | iframe框架标签应用

文章目录

  • 📚嵌入方式
  • 📚图表加载显示
  • 📚100%嵌入及滑动条问题
  • 📚加载动画保留

前情提要

  • 计划用iframe把画好的home1.html(echarts各种图表组成的html数据大屏)嵌入整合到index.html(搭的可视化作业框架)里。
  • 再具体一点说,就是把home1.html用iframe框架标签放到到li.home1里。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

📚嵌入方式

  • 直接用iframe标签
    <li class="home1"><iframe src="home1.html"></iframe>
    </li>
    

📚图表加载显示

在嵌入时出现了图表不显示的问题,解决方法:

  • 将绘图js里涉及到的myChart.setOption(option);全部改为:
    if (option && typeof option === 'object') {myChart.setOption(option);
    }
    window.addEventListener('resize', myChart.resize);
    
  • 以上代码设置 ECharts 图表的选项和监听浏览器窗口大小变化时自动调整图表大小
    • ​option && typeof option === 'object'​,这个条件的作用是判断 ​option​ 是否存在且是一个对象类型。
      • 如果条件成立,说明 ​option​ 是一个有效的选项对象,那么接下来的操作才会执行。
      • 这个条件的目的是确保不会在 ​option​ 不存在或者不是对象类型时,运行 ​myChart.setOption(option)​ 报错。
    • 通过 ​window.addEventListener('resize', myChart.resize)​ 给浏览器窗口的 ​resize​ 事件添加了一个监听器,当窗口大小发生变化时,会自动调用 ​myChart.resize​ 方法,即重新调整图表的大小,使其适应新的窗口尺寸。

📚100%嵌入及滑动条问题

  • 给iframe设置样式:<iframe src="home1.html" style="width: 100%; height: 100%;"></iframe>
  • 出现了不想要的滑动条
    在这里插入图片描述
    • 我这里的解决办法是把home1.html原页面的height改小一点点。
    • height: 100vh;改为height: 96vh;,嵌入后滑动条消失。
      在这里插入图片描述

📚加载动画保留

  • 本来图表加载,是会有初始动画的(柱形图生成,折线图生成等等),但是现在iframe嵌入直接一步到位了(而重新加载框架时又会出现动画)。
    在这里插入图片描述

  • 考虑以下方法保留初始加载动画。

    • 给iframe标记id,<iframe id="myIframe" src="home1.html" style="width: 100%; height: 100%;"></iframe>
    • 在js的window.onload = function ()里添加:
      var iframe = document.getElementById('myIframe');
      iframe.contentWindow.location.reload();
      
      • 通过 ​iframe.contentWindow​ 获取到了 ​<iframe>​ 的窗口对象。这个窗口对象提供了对嵌入的文档的访问和操作。
      • 调用 ​location.reload()​ 方法,重新加载 ​<iframe>​ 中的页面。这个方法会导致 iframe 内部文档的全部重新加载。
http://www.lryc.cn/news/247669.html

相关文章:

  • linux -系统通用命令查询
  • python炒股自动化(1),量化交易接口区别
  • LeetCode(35)螺旋矩阵【矩阵】【中等】
  • BeanUtil.copyProperties的优化与使用(解决copyProperties null值覆盖问题)
  • Redis基本操作及使用
  • python 继承父类的变量和方法
  • ubuntu22.04新机使用(换源,下载软件,安装显卡驱动,锁屏长亮)
  • 如何给shopify的网址做301跳转
  • Redis之秒杀系统
  • c++基础----new
  • Java中的mysql——面试题+答案(存储过程,外键,隔离级别,性能优化)——第23期
  • 一种新的基于物理的AlGaN/GaN HFET紧凑模型
  • uniapp基础-教程之HBuilderX基础常识篇02
  • 如何源码编译seaTunnel
  • msng病毒分析
  • Unity安装
  • 【代洋集团特惠好物:80瓦太阳能折叠包】
  • 一致性Hash算法
  • linux 下如何将/dev/nvme0n1符格式化为空盘符
  • IP地址的最后一位不可以为0或255
  • 代洋集团:太阳能智能座椅,创新能源的未来篇章
  • linux服务器安装gitlab
  • Tlog SpringBoot3.x版本无法正常打印TraceId等数据
  • 基于Spring原生框架构建原生Spring的第一个程序!
  • [个人笔记] Git的CLI笔录
  • 如何运行C/C++程序
  • HTML中input标签的23种type类型
  • 接口多态与方法多态
  • js小技巧|如何提取经过Function函数混淆了的代码
  • 【GitLab】流水线入门