[javascript] vuejs的elementui实现父子iframe通信
当在后台界面使用iframe嵌套时 ,如果子iframe嵌套页想要点击一个连接 ,进行界面的刷新,就需要向父iframe传递信息 , 父iframe再去更新iframe的url
子iframe点击时调用openUrl方法 , 传递信息给父
<!-- 引入组件库 --> <script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.1/lib/index.js"></script> <script> new Vue({ el: '#toutiaolist', data: function () { return { fullscreenLoading:true, } }, methods: { openUrl: function (url) { var data={url:url}; window.parent.postMessage(data); }, }, created: function () { } }) </script>
父iframe接收到信息 , 更新iframe的url
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <!-- 引入组件库 --> <script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.1/lib/index.js"></script> <script> new Vue({ el: '#app', data: function () { return { iframeUrl: "index.php?r=media/weibolist", } }, methods: { openUrl: function (url,msg) { this.iframeUrl=url+"&time="+new Date().getTime(); }, }, created:function(){ let _this=this; window.addEventListener('message',function(e){ if(e.data.url){ _this.iframeUrl=e.data.url+"&time="+new Date().getTime(); } }); } }); </script>
主要靠这个
let _this=this; window.addEventListener('message',function(e){ if(e.data.url){ _this.iframeUrl=e.data.url+"&time="+new Date().getTime(); } });
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网