vue路由resolve新开页面调取父级页面的方法

277 阅读1分钟

路由页面

mounted() {
    window.addEventListener('message', e => {
      this.targetWindow = e.source;
    });
  },
  
methods:{
   setMessage() {
      let windowUrl = window.location.href;
      let domain = windowUrl.split('#')[0];
      let href = domain + '#/aaa';
      this.targetWindow.postMessage('refresfdata', href);
    },
   submit(){ //提交方法
     this.setMessage();
   }
  }

父级页面

mounted() {
    let _this = this;
    window.addEventListener(
      'message',
      function (event) {
        if (event.data === 'refresfdata') {
          _this.queryData();
        }
      },
      false
    );
  },
methods:{
  creatDt(name) {  //打开新页面
      const { href } = this.$router.resolve({
        name: name,
      });
      let newWindow = window.open(href, '_blank');
      setTimeout(() => {
        newWindow.postMessage('bq', '*');
      }, 10 * 1000);
    },
}