pc打开新窗口方法-vue

pc打开新窗口方法-vue

/**
    *  打开新标签窗口
    * @param url
    * @param callback
    */
    openNewWindow(path, query={},callback) {
      const routeData = this.$router.resolve({
        path,
        query,
      });
      let frame= window.open(routeData.href, '_blank');
      frame.name = "win_" + Math.uuid();
      window['layerReturns'] = window['layerReturns'] || {};
      window['layerReturns'][frame.name] = function (e) {
        if(callback) {
          callback.call(opener, e);
        }
      }
    },
    /**
     *  关闭当前窗口,并向父窗口传输参数
     * @param r // 回调的参数
     * @param url // 如果当前没有可关闭的页面,则vue-router的跳转页面
     * @param query // 跳转可以携带参数
     */
    closeWindow(r,url,query={}) {
      var layerReturns;
      if(window.opener) {
        layerReturns = window.opener['layerReturns'];
      } else if (window.parent){
        layerReturns = window.parent['layerReturns'];
      }
      if(layerReturns && typeof  layerReturns[window.name] == 'function') {
        layerReturns[window.name](r);
      }
      try {
        if (navigator.userAgent.indexOf('MSIE') === -1) {
          window.opener = null;
          window.open("", "_self");
        }
        if(window.close()) {
          window.close();
        }else{
          this.$router.push(url,query)
        }
      } catch (e) {
        console.log(e);
      }
    },
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值