Vue进阶(六十四):iframe更改src后页面未刷新问题解决
文章目录
- 一、场景描述
- 二、高版本浏览器页签切换后内容不刷新问题解决
- 2.1 解决思路
- 2.2 解决措施
- 三、拓展阅读
- 3.1 keep-alive 缓存 iframe
一、场景描述
在项目开发过程中,应用iframe
实现外系统页面嵌套的时候,发现引入其他页面后,页面内容并未刷新加载,经过一番研究,解决方案如下:
vm.iframeSrc = iframeSRC
if (document.getElementById('iframe')) {setTimeout(() => {document.getElementById(iframeid).contentWindow.location.reload(true);}, 200)
}
注:务必在更改iframe src
属性值之后补充页面重载逻辑,否则无法解决问题。
注:window.reload是重新加载当前需要的所有内容,也就包括页面和后台的代码,此过程中实际上是从后台重新进行操作;
二、高版本浏览器页签切换后内容不刷新问题解决
在应用上面的解决措施后,发现Chrome(>75)
及IE高版本浏览器下,iframe
在更改了src
之后对应的网页并未刷新问题复现。
2.1 解决思路
iframe
下页面内容未刷新问题其实是由于页面未重新渲染导致的,但是通过在src
中添加时间戳以达到欺骗浏览器重新渲染的目的并未解决以上问题,后通过v-if
实现销毁新建iframe
方式,完美解决问题。
2.2 解决措施
<iframe v-if="flagsArr[index]" :src='...+timeStamp'></iframe>
handleSelect (tab, event) {this.index = tab.indexthis.flagsArr = Array(页签数组.length).fill(false)this.flagsArr[this.index] = truevm.iframeSrc = iframeSRCif (document.getElementById('iframe')) {setTimeout(() => {document.getElementById(iframeid).contentWindow.location.reload(true);}, 200)}
}
三、拓展阅读
3.1 keep-alive 缓存 iframe
因为iframe
不在vue
的虚拟节点里,所以即使使用了vue
的keep-alive
也不会缓存iframe
页面。
我们可以换个思路解决这个问题。首先在router.js
里不要引入路径,就是component
不写,这样会出现加载这个路由,页面是空白,然后在app.vue
页面引入iframe
的组件,在<roter-view />
下面加载这个iframe
组件,通过v-show
判断$route.path === 'iframe的路由'
,如果是iframe
页面,iframe
页面就会正常加载出来,而且不管怎么跳转路由都会保存当前状态,也就相当于默认把iframe
页面加载出来,只是通过display:none
隐藏,如果到这个iframe
路由下了,再让其显示。
Vue进阶(六十四):iframe更改src后页面未刷新问题解决相关推荐
- J2EE进阶(二十四)JBoss Web和 Tomcat的区别
J2EE进阶(二十四)JBoss Web和 Tomcat的区别 在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端的基础架构提出了更高的稳定性和可扩展性的要求.近年来,作为开源中间件的全球 ...
- [Python从零到壹] 六十四.图像识别及经典案例篇之图像傅里叶变换和傅里叶逆变换详解
祝大家新年快乐,阖家幸福,健康快乐! 欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所 ...
- 【Vue2.0学习】—插槽(六十四)
[Vue2.0学习]-插槽(六十四) 作用:让父组件可以向子组件指定的位置插入html结构,也是一种组件间通信的方式,适用于 父组件=>子组件 分类:默认插槽.具名插槽.作用域插槽 默认插槽 使 ...
- QT开发(六十四)——QT样式表(二)
QT开发(六十四)--QT样式表 本文主要翻译自QT官方文档Qt Style Sheets . 五.QT样式表参考 QT样式表支持多种的属性.状态和子控件,使得定制组件的外观成为可能. 1.组件 以下 ...
- Console-算法[for]-国王与老人的六十四格
ylbtech-Arithmetic:Console-算法[for]-国王与老人的六十四格 1.A,案例 -- ============================================ ...
- JavaScript学习(六十四)—关于JS的浮点数计算精度问题解决方案
JavaScript学习(六十四)-关于JS的浮点数计算精度问题解决方案 您的语言没有中断,它正在执行浮点数学运算.计算机只能本地存储整数,因此它们需要某种表示十进制数字的方式.此表示并不完全准确.这 ...
- 信息系统项目管理师核心考点(六十四)信息安全基础知识重要概念
科科过为您带来软考信息系统项目管理师核心重点考点(六十四)信息安全基础知识重要概念,内含思维导图+真题 [信息系统项目管理师核心考点]信息安全基础知识重要概念 1.加密技术 ①对称加密[加密与解密的秘 ...
- C语言/C++常见习题问答集锦(六十四) 之兔子繁殖(递归与非递归)
C语言/C++常见习题问答集锦(六十四) 之兔子繁殖(递归与非递归) 程序之美 1.C语言,计算1乘以3×5*-乘n的积,并输出结果,n值由键盘接收. #include<stdio.h>v ...
- 观音灵签 第六十四签下签卯宫 古人马前覆水
偶今日去凤凰山烧香拜佛求签,求得第六十四签下签 "(古人)马前覆水",内容如下: 签文 游鱼却在碧波池,撞遭罗网四边围: 思量无计番身出,事到头来惹是非. 诗意 此卦鱼遭罗网之象. ...
最新文章
- Jan 09 - Number of 1 Bits; Bit Operation;
- Intel汇编语言程序设计学习-第五章 过程-上
- 关于C++ Qt项目实现最简单Http Server的踩坑记录
- 百万数据报表导出:使用SXSSFWorkbook完成百万数据报表打印
- [react] react中的key有什么作用?
- python的pygame库使用方法_python基础教程使用Python第三方库pygame写个贪吃蛇小游戏...
- linux多台主机对比文件大小,Linux主机df和du出来的文件和磁盘大小不相同
- OpenShift 4 之Istio-Tutorial (5) 其它流量控制场景以及VirtualService和DestinationRule的关系
- 仿函数functors
- 好用的论文翻译工具集锦
- html表格的常用样式
- html打开网页过场动画_动画演示制作软件(高级版)比PPT强太多了
- mysql实时同步软件,MySQL实时同步到Oracle 详解MySQL实时同步到Oracle解决方案
- html5 设备管理信息 device
- Python实战技巧(11)使用python收发邮件时需要的邮箱授权码如何获取
- 经典 CNN 神经网络 LeNet-5 的 C++ 实现(MNIST数据集)
- windows7蓝牙怎么打开_windows7系统怎么调待机时间
- Support for password authentication was removed on August 13, 2021. Please ...
- Rail 3流行插件与替换部件简介
- 驱动开发:内核读取SSDT表基址
热门文章
- java 生成sql,java excel生成sql
- Gym101522GHIJKL----La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017
- 《算法竞赛进阶指南》0x6B T3 GF和猫咪的问题
- android图片缩放动画,Android开发笔记——点击查看大图过渡动画与图片缩放与移动...
- Linux清除系统缓存释放内存命令介绍
- PDF文档如何进行合并
- 机器学习中的数学——激活函数(十):Softplus函数
- 交通事故造成的危房该如何赔偿
- Android —— QR二维码生成与扫描
- Java发邮件配置-hutool+腾讯企业邮箱