使用的是vue-element-admin。

需求

项目需求是在点击左边侧边栏的时候判断如果是外部的页面之后,将此页面在右侧打开,每打开一个,tagview中也会相应加上,当切换这些tagview时,要保持每个页面切换前的状态,就是不重载。

尝试


新建了iframe.vue文件,里面套iframe标签,通过地址的参数不同,跳转不同的iframe页面,但是在做切换时,会导致iframe页面重载,利用了keep-alive 只是对非iframe页面作用,iframe页面没有作用。
因为keep-alive不是简单地隐藏的,它只会保留组件实例对象,但Dom已经没有了。所以你要让iframe不刷新,就必须让iframe隐藏,所以要把iframe与其它页面分开对待。

经过咨询别人和查资料,在路由配置中通过参数来判断该路由是否由iframe来展示,meta: { iframe: true }
然后在页面显示这里,通过判断 meta.iframe 来决定是显示 router-view 还是 iframe 页面。

问题

通过这种指向同一个iframe组件的方法测试之后iframe页面切换时依然会重载。在页面上查找元素时发现就是一个iframe在切换时会不断的销毁和重建,每次都是新的iframe导致会重载。这就找到了问题出现的原因。

方法

在点击侧边栏的时候去动态创建iframe标签,不用同一个组件,通过控制多个iframe的显示隐藏解决在页签之间切换的时候刷新重载的问题。这样就是每个都是独立的,互不影响。

点击左侧时,动态创建iframe标签

当然这样就会存在问题,点击多次左侧打开多个iframe,多个iframe就会堆到一起。这时需要根据判断地址栏路由和tagview中打开的选项visitedViews遍历子项比较判断即可。
大致方向是这样,踩了很多坑,下面可能还会有一些小问题,比如点击关闭tagview时需要去移除掉关闭项的iframe,不然也会出现一些问题。

这只是一种方法,有好的思路大家可以来分享。

vue 中嵌入iframe页面相关推荐

  1. 网页中嵌入外部页面的四种方法

    一.应用框架技术  ---- 要在宿主页面中嵌入外部页面的方法是,在宿主页面中包含外部页面的位置插入"< IFRAME name="XXX" width=X hei ...

  2. 【vue中实现iframe 自适应高度和去除滚动条】

    项目场景: vue中实现iframe 自适应高度和去除滚动条 解决方案: html <iframe:src="tempSrc"width="100%":h ...

  3. 【Flutter】Flutter 混合开发 ( 关联 Android 工程与 Flutter 工程 | 安卓页面中嵌入 Flutter 页面 | 安卓中启动 Flutter 页面 )

    文章目录 前言 一.创建 Android 项目 二.关联 Android 工程与 Flutter Module 工程 1.配置 Flutter Module工程 2.配置 build.gradle 3 ...

  4. Document.visibilityState 页面监听 vue中实现离开页面时计时停止: 停止计时后从上一次开始计时

    概述 Document.visibilityState (只读属性), 返回document的可见性, 即当前可见元素的上下文环境. 由此可以知道当前文档(即为页面)是在背后, 或是不可见的隐藏的标签 ...

  5. app 中嵌入H5页面,H5跳转H5页面的跳转实现

    app 中嵌入H5页面,H5跳转H5页面的跳转实现 模拟创建a标签,并将href给到a标签点击实现: 模拟创建a标签,并将href给到a标签点击实现: var a = document.createE ...

  6. Vue中监听页面刷新和关闭beforeunload事件

    代码 在methods中定义事件方法,在mounted 生命周期钩子中绑定事件, 在destoryed钩子中卸载事件 mounted () {window.addEventListener('befo ...

  7. chrome浏览器插件开发-在当前网页中嵌入插件页面

    chrome浏览器插件开发-在当前网页中嵌入插件页面 既然想嵌入插件页面就是需要写html和css 在myPlugin中创建contentCss文件夹,里面创建index.css文件 在manifes ...

  8. HTML5怎么编辑另一个页面,html中嵌套iframe页面 如何将一个html页面中嵌入另一个html页面...

    如何将一个html页面中嵌入另一个html页面 将一个html页面中嵌入另一个html页面需要使用到iframe标签. iframe标签用法: scrolling禁止鼠标滑动,frameborder嵌 ...

  9. Vue 中定义方法页面上使用

    vue中定义方法的格式 为什么要这样定义 最近在学习前段,特别是HBuildX 我看里面很多方式都是这样使用,所以想强加练习 如何引用 当然我们的editArticle也可以直接放到js中,如下: 都 ...

最新文章

  1. python能处理图片吗_python图片处理(一)
  2. Atomikos 中文说明文档【转】
  3. DRAM、SRAM、SDRAM、DDRSDRAM的区别
  4. python用二分法求平方根_Python使用二分法求平方根的简单示例
  5. 友盟+联合EB级云数据 实现友盟域和企业私域数据全面融合
  6. 【Java】springboot学习笔记二
  7. 程序员喝酒文化 (转贴)
  8. 问题 F: 编写函数:一维数组的逆序 (Append Code)
  9. JS难点之hoist
  10. 操作系统——I/O设备
  11. 人力资源分析测试工具软件,HR常用的3大人才测评工具,你会用几个?
  12. FireEye 网络攻击危害红队安全工具
  13. kmeans设置中心_kmeans算法
  14. VTK:图形基本操作进阶——表面重建技术(等值面提取)
  15. JavaScript:实现计算二维平面上两点之间的距离算法(附完整源码)
  16. android桌面壁纸显示不全屏显示,手机壁纸怎么全屏 全屏显示手机壁纸方法
  17. 2020年Java常问面试题--聂
  18. (HGNN) Hypergraph Neural Networks
  19. 实时显示当前时间(中文版)
  20. VC无负担实现XP风格界面 [转]

热门文章

  1. Linux系统服务简述和作用
  2. python主题更改_IDLE怎么将主题修改成Darcula样式?
  3. opencv制作微信小游戏 最强连一连 辅助(2)--dfs深度优先搜索算法
  4. 【AD小知识】PCB布线理论及实际操作
  5. linux syslog原理,Linux日志管理之詳解 syslog/vsyslog
  6. 【java.lang.ref】FinalReference Finalizer FinalizerThread
  7. 双十一游戏发烧友都在推荐的电子竞技显示器
  8. win10 UWP 你写我读
  9. echart地图加载中国地图,可切换省市地图
  10. scrapy抓取的中文结果乱码解决办法