防止页面中js文件重复引入报错问题解决方法浅谈

今天使用layerUI做页面布局,index主页面嵌套子页面,因为在子页面中重复引入layui.js,layerui上传图片事件导致前台页面报错——layer is not a valid module;

该错误也可能是引入的jquery放在了layui.js后面导致报错;

百度寻得解决方法如下:

//防止    layui.js  重复引入 
function importOnceJs(scriptPath) {
    var scripts = document.getElementsByTagName("script");
    for (var index = 0; index < scripts.length; index++) {
      if (scripts[index].src.lastIndexOf(scriptPath) != -1) {
        return;
      }
    }
    var scriptTag = document.createElement("script");
    scriptTag.type = "text/javascript";
    scriptTag.src = scriptPath;
    scriptTag.charset = "utf-8";
    var headTag = document.getElementsByTagName("head")[0];
    headTag.appendChild(scriptTag);
  }

类比推出防止css重复引入方法:

//防止    layui.css  重复引入 
function importOnceCss(linkPath) {
    var links = document.getElementsByTagName("link");
    for (var index = 0; index < links.length; index++) {
      if (links[index].href.lastIndexOf(linkPath) != -1) {
        return;
      }
    }
    var linkTag = document.createElement("link");
    linkTag.rel = "stylesheet";
    linkTag.href = linkPath;
    linkTag.media = "all";
    var headTag = document.getElementsByTagName("head")[0];
    headTag.appendChild(linkTag);
  }

方法调用
importOnceJs("../layui/layui.js");
importOnceCss("../layui/css/layui.css");

使用该方法需要将该部分JavaScript代码放在head标签中,页面加载自上而下,不影响layerjs其他方法渲染

以上拙见若有不足之处还望各位大神批评指正

转载于:https://my.oschina.net/xiaohuoer1995/blog/1600171

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值