vue 中嵌入iframe页面
使用的是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页面相关推荐
- 网页中嵌入外部页面的四种方法
一.应用框架技术 ---- 要在宿主页面中嵌入外部页面的方法是,在宿主页面中包含外部页面的位置插入"< IFRAME name="XXX" width=X hei ...
- 【vue中实现iframe 自适应高度和去除滚动条】
项目场景: vue中实现iframe 自适应高度和去除滚动条 解决方案: html <iframe:src="tempSrc"width="100%":h ...
- 【Flutter】Flutter 混合开发 ( 关联 Android 工程与 Flutter 工程 | 安卓页面中嵌入 Flutter 页面 | 安卓中启动 Flutter 页面 )
文章目录 前言 一.创建 Android 项目 二.关联 Android 工程与 Flutter Module 工程 1.配置 Flutter Module工程 2.配置 build.gradle 3 ...
- Document.visibilityState 页面监听 vue中实现离开页面时计时停止: 停止计时后从上一次开始计时
概述 Document.visibilityState (只读属性), 返回document的可见性, 即当前可见元素的上下文环境. 由此可以知道当前文档(即为页面)是在背后, 或是不可见的隐藏的标签 ...
- app 中嵌入H5页面,H5跳转H5页面的跳转实现
app 中嵌入H5页面,H5跳转H5页面的跳转实现 模拟创建a标签,并将href给到a标签点击实现: 模拟创建a标签,并将href给到a标签点击实现: var a = document.createE ...
- Vue中监听页面刷新和关闭beforeunload事件
代码 在methods中定义事件方法,在mounted 生命周期钩子中绑定事件, 在destoryed钩子中卸载事件 mounted () {window.addEventListener('befo ...
- chrome浏览器插件开发-在当前网页中嵌入插件页面
chrome浏览器插件开发-在当前网页中嵌入插件页面 既然想嵌入插件页面就是需要写html和css 在myPlugin中创建contentCss文件夹,里面创建index.css文件 在manifes ...
- HTML5怎么编辑另一个页面,html中嵌套iframe页面 如何将一个html页面中嵌入另一个html页面...
如何将一个html页面中嵌入另一个html页面 将一个html页面中嵌入另一个html页面需要使用到iframe标签. iframe标签用法: scrolling禁止鼠标滑动,frameborder嵌 ...
- Vue 中定义方法页面上使用
vue中定义方法的格式 为什么要这样定义 最近在学习前段,特别是HBuildX 我看里面很多方式都是这样使用,所以想强加练习 如何引用 当然我们的editArticle也可以直接放到js中,如下: 都 ...
最新文章
- python能处理图片吗_python图片处理(一)
- Atomikos 中文说明文档【转】
- DRAM、SRAM、SDRAM、DDRSDRAM的区别
- python用二分法求平方根_Python使用二分法求平方根的简单示例
- 友盟+联合EB级云数据 实现友盟域和企业私域数据全面融合
- 【Java】springboot学习笔记二
- 程序员喝酒文化 (转贴)
- 问题 F: 编写函数:一维数组的逆序 (Append Code)
- JS难点之hoist
- 操作系统——I/O设备
- 人力资源分析测试工具软件,HR常用的3大人才测评工具,你会用几个?
- FireEye 网络攻击危害红队安全工具
- kmeans设置中心_kmeans算法
- VTK:图形基本操作进阶——表面重建技术(等值面提取)
- JavaScript:实现计算二维平面上两点之间的距离算法(附完整源码)
- android桌面壁纸显示不全屏显示,手机壁纸怎么全屏 全屏显示手机壁纸方法
- 2020年Java常问面试题--聂
- (HGNN) Hypergraph Neural Networks
- 实时显示当前时间(中文版)
- VC无负担实现XP风格界面 [转]
热门文章
- Linux系统服务简述和作用
- python主题更改_IDLE怎么将主题修改成Darcula样式?
- opencv制作微信小游戏 最强连一连 辅助(2)--dfs深度优先搜索算法
- 【AD小知识】PCB布线理论及实际操作
- linux syslog原理,Linux日志管理之詳解 syslog/vsyslog
- 【java.lang.ref】FinalReference Finalizer FinalizerThread
- 双十一游戏发烧友都在推荐的电子竞技显示器
- win10 UWP 你写我读
- echart地图加载中国地图,可切换省市地图
- scrapy抓取的中文结果乱码解决办法