vue + element 使用 iframe

技术难点:

1、iframe重新设置src不会重新加载的问题!
2、iframe所在的页面中通知父页面关闭模态框以及其他操作的问题(父子通信)!

解决思路:

1、iframe重新设置src后不会重新加载的问题:

我试了很多种办法,也百度不少度!网上的那种什么reload的方法没什么用,最终我自己想到了下面这种方法!具体思路如下:

1、我先准备个div标签包住ifream!
2、每次处理加载新页面的时候使用新建立的iframe覆盖;此时就可以看似达到重新
     加载的目的!
3、注意的时第一步的iframe不能删除,即使是每次第2步会创建一个新的iframe进
     去,第一次打开时也是空白!我也想不明白
     具体原因,可能时创建iframe没那么迅速把!

实现代码如下:

<!--  任务办理 -->
<el-dialog id="completeDialog" title="办理任务" :visible.sync="dialogComplete" width="95%" top = "5px"  ><div  id="completeDiv" ><iframe  :src="completeTask" height="500" width="100%"></iframe></div>
</el-dialog>
// 任务表单
complete(index,row){this.currentTaskId = row.task.id;this.completeTask =  "xxx";$("#completeDiv").html("<iframe  src='"+ this.completeTask +"' height='500' width='100%'></iframe>");this.dialogComplete = true;
} 
2、iframe所在的页面中通知父页面关闭模态框以及其他操作的问题(父子通信):

这个我开始的想法是看能不能再iframe所在的页面通过this来访问到父页面的方法,可后来发现这个办法可能是用于父子组建的,但我们这是相当于两个页面了!最后是使用的 postMessage;关于他的简洁解释如下:


window.postMessage 的功能是允许程序员跨域在两个窗口/frames间发送数据信息。基本上,它就像是跨域的AJAX,但不是浏览器跟服务器之间交互,而是在两个客户端之间通信。让我们来看一下window.postMessage是如何工作的。除了IE6、IE7之外的所有浏览器都支持这个功能。


想了解更多请点击 → HTML5如何用window.postMessage在网页间传递数据

在了解了postMessage的使用之后我们就可以开始了!思路如下:
1、在父页面增加个 postMessage 来监听iframe的信息!
2、子页面想关闭时通知父页面!

实现代码如下:

父窗口所在的页面:

// 关闭弹框监听
this.postMessageListener = e => {var data = e.data;if(data.close){this.dialogComplete = false;}if(data.removeData){for(var i = 0; i < this.tableData.length; i++){if(this.currentTaskId == this.tableData[i].task.id){this.tableData.splice(i,1);break;}}}if(data.message){this.prompt(data.message);}
}
// 增加一个postMessage来监听消息
window.addEventListener('message', this.postMessageListener)

iframe所在的窗口的方法:

/** 关闭窗口  */
close(removeTask, message){let params = { close: true, removeData: removeTask,message: message }parent.postMessage(, '*')
}

vue + element 使用 iframe相关推荐

  1. element ui 图片控件 排序_JAVA全栈面试前端基础之四 Vue+Element框架快速开发

    本文主要包括以下4个内容 什么是ElementUI Vue 中引入ElementUI Vue+elementUI构建后台管理系统 开源项目推荐 1.什么是ElementUI 官网:https://el ...

  2. 超美观的 Vue+Element 开源后台管理 UI

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! EuiAdmin是基于Vue+Element等组件联合开发 ...

  3. vue+element 后台管理系统(三)树形图

    <!DOCTYPE html> <html class="over_hidd"> <head><meta charset="UT ...

  4. vue + element ui 的后台管理系统框架_从零开始搭建 VUE + Element UI后台管理系统框架...

    点击右上方红色按钮关注"web秀",让你真正秀起来 前言 后台管理系统前端框架,现在很流行的形式都是,上方和左侧都是导航菜单,中间是具体的内容.比如阿里云.七牛云.头条号.百家号等 ...

  5. 超优 Vue+Element+Spring 中后端解决方案

    今日推荐 推荐一款开源 Java 版的视频管理系统 推荐3个快速开发平台 前后端都有 项目经验又有着落了 14个项目 转载:toutiao.com/i6911704074815767048 作者:we ...

  6. 介绍一款贼美的Vue+Element开源后台管理UI

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:又一程序员进了ICU:压垮一个家庭,一张结算单就够 个人原创100W+访问量博客:点击前往,查看更多 前言 Eu ...

  7. html全局布局 vue_基于Vue+Element的电商后台管理系统

    前言 mall项目后台管理系统的前端项目. 项目介绍 mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现. 主要包括商品管理.订单管理.会员管理.促销管理.运 ...

  8. Vue + Element UI——监听DOM元素高度和宽度解决方案整理(八种方法)

    问题描述 监听DOM元素大小的变化,在前端开发中,算是一个比较常见的需求,比如我们要制作可伸缩的图表的时候,可能需要根据DOM大小的变化,进行动态的更新图表. 解决方案 方法一: 监听window变化 ...

  9. Vue + Element UI——侧边栏LOGO设计DEMO

    GitHub https://github.com/PanJiaChen/vue-element-admin DEMO https://panjiachen.github.io/vue-element ...

最新文章

  1. 动辄数百TB级数据的分析平台 海量并发无压力
  2. 技师学院计算机老师,技师学院计算机教学课堂改革探索论文
  3. floquet端口必须沿z轴设置_Ansys Workbench 振动给料机偏心轴的模态分析
  4. WebBrowser设置打印页眉页眉和页边距
  5. 《手把手教你》系列基础篇之2-python+ selenium自动化测试-打开和关闭浏览器(详细)
  6. 数字后端基本概念介绍<Endcap Cell>
  7. 基于ECharts+百度地图开发散点扩散图
  8. 深度学习大神Hinton推翻自己30年的学术成果另造新世界
  9. WBE漏洞-SQL注入之报错盲注
  10. python运行时不让电脑休眠_python实现windows休眠
  11. 光功率计(Optical power meter)
  12. 霍尔开关的分类及如何选型
  13. husky实现git commit规范
  14. 在路上:安全公司“跨界”SD-WAN
  15. Integer最大值2147483647
  16. 计量经济学之时间序列分析学习笔记(单位根检验、协整检验、单整阶数判断、ECM建模)——基于R(二)
  17. excel中始终打开PERSONAL.XLSB表格
  18. 一维恒虚警检测CFAR,雷达回波-检测门限波形图
  19. IApp调用教程【IApp资源共享!】
  20. swustoj289消灭老鼠-利用队列解决简单的约瑟夫环

热门文章

  1. 头寸是什么意思之如何建立自己的头寸?
  2. Unity虚拟现实(VR)无编码游戏开发视频教程
  3. HIT oslab之实验2 操作系统的引导(bootsect.s + setup.s)
  4. 4K电视与4K显示器的选择
  5. MyBatisPlus--多数据源
  6. mybatis动态数据源配置(附自定义注解实现数据源切换)
  7. Poincaré on Mathematical Creation
  8. 应对word无法编辑、无法选中、无法删除的方法
  9. 20221210英语学习
  10. sipXecs技术交流QQ群