vue中内嵌iframe的src更新页面未刷新问题及解决

目录
  • vue内嵌iframe的src更新页面未刷新
    • 原因
    • 解决
  • iframe的src指向的内容不刷新的解决方法之一
  • 总结

vue内嵌iframe的src更新页面未刷新

vue中,系统使用iframe内嵌了其他系统的页面,iframesrc修改了,但是iframe内部页面内容未更新,也未请求接口。

原因

iframe的src中如果带hash #src改变是不会刷新的。

解决

方式一:可以在 # 号前加一个随机数或者时间戳,但这种方式会改变url;方式二:在组件上加key,强制刷新页面。

方式一:

this.url= `https://xxxx/xxxxx${new Date().getTime()}/#/${val.params.url}`

方式二:

<template>
  <div>
    <iframe
      :key="key"
      :src="url"
      width="100%"
      height="100%"
      frameborder="0"
    ></iframe>
  </div>
</template>

<script>
export default {
  data() {
    return {
      url: "",
      key: new Date().getTime()
    }
  },
  watch: {
    $route: {
      handler(val) {
        this.key = new Date().getTime()
        this.url= `https://xxx/xxx/#/${val.params.url}`
      },
      immediate: true,
    },
  },
}
</script>

iframe的src指向的内容不刷新的解决方法之一

iframe的src的值发生改变,才会刷新iframe里面的内容.

<iframe :src="baseUrl" height="100%" frameborder="0" scrolling="auto" width="100%"></iframe>
this.baseUrl = this.baseUrl +  `&time=${new Date().getTime()`

给url后面通过问号传值,传一个当前时间, 这个值并没有其他用处,只是为了改变src的值。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue数据更新UI不刷新显示的解决办法

    vue比较常见的坑就是数据(后台返回)更新了,但是UI界面并没有更新,常见于以下情况: 一.数据为数组时 1.通过数组索引修改数组元素例如: 此时UI数据并不会刷新 2.修改数组长度时: 解决方案: 如果data为JSON数组则如下: 第一个参数为要更新数据的数组,第二个参数为要更新的数组中具体的元素下标,第三个参数为新数据 备注: 数组原型上的方法vue可直接检测到变化:push(),pop(),shift(),unshift(),splice(),sort() 二.数据为对象时: Vue 不

  • Vue 数组和对象更新,但是页面没有刷新的解决方式

    在使用数组的时候,数组内部数据发生改变,但是与数组绑定的页面的数据却没有发生变化. <ul> <li v-for="(item,index) in todos" :key="index">{{item.name}}</li> </ul> data () { return { msg: 'Welcome to Your Vue.js App', todos: [{ name: 'aa', age: 14 }, { nam

  • Vue数据更新但页面没有更新的多种情况问题及解决

    目录 数据更新但页面没有更新的多种情况 1.Vue无法检测实例被创建时不存在于data中的变量 2.vue也不能检测到data中对象的动态添加和删除 3.数组的时候 4.异步获取接口数据,DOM数据不发现变化 5.循环嵌套层级太深,视图不更新 6.路由参数变化时,页面不更新(数据不更新) 强制更新数据 this.$forceUpdate() 数据更新但页面没有更新的多种情况 1.Vue无法检测实例被创建时不存在于data中的变量 原因:由于 Vue 会在初始化实例时对 data中的数据执行 ge

  • vue中内嵌iframe的src更新页面未刷新问题及解决

    目录 vue内嵌iframe的src更新页面未刷新 原因 解决 iframe的src指向的内容不刷新的解决方法之一 总结 vue内嵌iframe的src更新页面未刷新 vue中,系统使用iframe内嵌了其他系统的页面,iframe的src修改了,但是iframe内部页面内容未更新,也未请求接口. 原因 iframe的src中如果带hash #,src改变是不会刷新的. 解决 方式一:可以在 # 号前加一个随机数或者时间戳,但这种方式会改变url:方式二:在组件上加key,强制刷新页面. 方式一

  • vue内嵌iframe跨域通信的实例代码

    目录 vue内嵌iframe跨域通信 1.Vue组件中如何引入iframe? 2.vue如何获取iframe对象以及iframe内的window对象? 3.vue如何向iframe内传送信息? 4.iframe内如何向外部vue发送信息? vue内嵌iframe跨域通信 1.Vue组件中如何引入iframe? <template> <div class="act-form"> <iframe :src="src"></ifr

  • 手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解

    本文实例讲述了CKEDITOR 4 实现Dialog 内嵌 IFrame操作.分享给大家供大家参考,具体如下: 在上一篇博文<CKEDITOR 4 扩展插件制作>中,姜哥跟大家探讨了在ckeditor中添加dialog,已经添加dialog的一些控件,最终将控件中的值插入到ckeditor编辑器中的过程.但是实际上,我们更多的应用,还是会在dialog中,添加iframe组件,直接引用外部网页,以实现更为复杂的功能.今天姜哥就和大家一起分享一下,这个开发过程. 继续我们上一个工程中的例子,我们

  • vue中如何通过iframe方式加载本地的vue页面

    目录 通过iframe方式加载本地的vue页面 iframe方式加载本地的vue页面的第一种方法 iframe方式加载本地的vue页面的第二种方法 iframe方式加载本地的vue页面的第三种方法 关于iframe在vue中应用问题 iframe的宽高无法根据内容撑开 通过iframe方式加载本地的vue页面 也是在实际的项目中碰到一个奇葩的需求,用vue,居然还要用到iframe,真是脑壳大,试了好多次最后才找到了正确的方法. 总共有三种方法吧 iframe方式加载本地的vue页面的第一种方法

  • 解决vue中对象属性改变视图不更新的问题

    常规情况下我们在vue实例的data中设置响应数据.但当数据为对象,我们增加或删除对象属性值时,视图并不触发更新,如何解决这个问题呢? 实例代码如下: let vm = new Vue{ el: '#app', data: { obj: { k: 'v' } }, ... } 有三种解决方案: 方案一:利用Vue.set(object,key,val) 例:Vue.set(vm.obj,'k1','v1') 方案二:利用this.$set(this.obj,key,val) 例:this.$se

  • Springboot项目中内嵌sqlite数据库的配置流程

    目录 Springboot中内嵌sqlite数据库配置 在idea中配置Sqlite springboot环境下配置使用sqlite数据库 pom文件导入mybatis和sqlite依赖 application.properties配置 使用 Springboot中内嵌sqlite数据库配置 在idea中配置Sqlite 选择右侧工具栏的datasource,点击加号,选择datasource,点击sqlite. 下载驱动,选择数据库存储位置. 直接指定在项目根目录下(放在resources下各

  • vue中echarts图表大小适应窗口大小且不需要刷新案例

    我就废话不多说了,大家还是直接看代码吧~ 内容如下: // 基于准备好的dom,初始化echarts实例 let myChart = this.$echarts.init(document.getElementById('myChart')) //根据窗口的大小变动图表 --- 重点 window.onresize = function(){ myChart.resize(); //myChart1.resize(); //若有多个图表变动,可多写 } 代码如下: mounted() { con

  • vue中使用vue-pdf组件实现文件预览及相应报错解决

    目录 前言 一.安装npm 依赖 二.引入组件 1.html中使用组件 单页 2.数据处理 单页 三.项目使用--代码部分 四.报错解决 总结 前言 使用vue-pdf组件实现文件预览功能 并在文件上增加操作按钮vue3不支持vue-pdf,vue3项目用pdfjs-dist 一.安装npm 依赖 1.在根目录下输入一下命令 npm i pdfjs-dist@2.5.207 --save npm i vue-pdf@4.2.0 --save 2.修改pacakge.json文件 "depende

  • Vue中消息横向滚动时setInterval清不掉的问题及解决方法

    最近在做项目时,需要进行两个组件联动,一个轮询获取到消息,然后将其传递给另外一个组件进行横向滚动展示,结果滚动的速度越来越快.这里记录一下来提醒自己.消息滚动的代码在最下面,方便下次使用. 问题背景: 最近在做一个需求,组件A获取消息采用的是轮询,组件A获取到新的消息后,将组件A中的消息传递给另外一个组件B,当组件B接收到消息时就让消息在页面上滚动播放. 实现思路: 这个项目应用的框架为VUE,当组件A获取到新的消息之后,就触发中央事件总线,在组件B中进行事件监听,将其添加进入一个数组,当判断定

  • vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)

    vue项目中,需要实现点击对应按钮,滚动到对应页面位置,下面分享一个简单实用的方法 原文地址 http://www.sharedblog.cn/?post=205 <template> <div class="box"> <div class="btn"> <span @click="Submit(1)">按钮一</span> <span @click="Submit(2

随机推荐