当在后台界面使用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();}});