解决layer.open跨项目弹框问题

layer.open跨项目弹框

    • 前言
    • 修改源代码

前言

正常是在同一个项目下调用layer,open来弹出弹框,但是项目中遇到A项目中嵌入B项目的页面,导致现在要去A项目去寻找B项目原本使用layer.open弹出的html(content里)文件,报错404

修改源代码

layer.js代码被压缩了,首先解压(我用的HBuilder X直接Ctrl+k),找到代码(应该在121行左右)如下

s = function(e) {
      var t = this;
      t.index = ++r.index, t.config = i.extend({}, t.config, o.config, e), document.body ? t.creat() : setTimeout(
        function() {
          t.creat()
        }, 30)
    };

t.config里存放的是最终的参数
这里我们需要传入两个参数:

  1. top.mouldFlag: 取0:按照layer.open传入的content来执行;取1:在layer.open传入的content参数前加上top.mouldHref
  2. top.mouldHref: 在top.mouldFlag取1时需要主动添加的href值

修改后的代码为:

s = function(e) {
      var t = this;
      t.index = ++r.index;
      t.config = i.extend({}, t.config, o.config, e);
      if(top.cashFlag == 1) {
        t.config.content = top.cashLink + t.config.content
      }
      document.body ? t.creat() : setTimeout(
        function() {
          t.creat()
        }, 30)
    };

你可能感兴趣的:(解决layer.open跨项目弹框问题)