博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js文件动态添加的实现
阅读量:7104 次
发布时间:2019-06-28

本文共 1496 字,大约阅读时间需要 4 分钟。

基于AMD和CMD的模块开发和按需加载,给我们的开发过程带来了便捷。

今天就来就分享一个自己在项目开发中用到的一个按需加载js的一个方法,不多说,直接ps代码啦

/** * JS 加载到顶部 * @param {String} url * @param {Boolean} 请求并加载 * @param {Function} fn * @return {Boolean} */function requireJs(url, multi, fn) {    if (typeof multi == 'function') {        var _temp = fn;        fn = multi;        multi = _temp;    }    var ss = document.getElementsByTagName('script');    var loaded = false;    for (var i = 0; i < ss.length; i++) {        if (ss[i].src && ss[i].getAttribute('src') == url) {            loaded = true;            break;        }    }    if (loaded) {        if (fn && typeof fn != 'undefined' && fn instanceof Function){            fn();            return false;        }     }    var s = document.createElement('script'),    b = false;    s.setAttribute('type', 'text/javascript');    if (multi) {        this.loadJs = fn;        var noArg = url.indexOf('?') == -1;        s.setAttribute('src', url + (noArg?'?':'&') + 'callback=WYSIWYG.loadJs');    } else {        s.setAttribute('src', url);        s.onload = s.onreadystatechange = function () {            if (!b && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {                b = true;                if (fn && typeof fn != 'undefined' && fn instanceof Function) fn();            }        };    }    document.getElementsByTagName('head')[0].appendChild(s);}

该方法会检查页面是否已经引入了需要引入的js,如果没有,则加载该js,如果已经存在,则不加载;总之会在判断完成后在执行回调。

转载于:https://www.cnblogs.com/oygg/p/5870916.html

你可能感兴趣的文章
Sublime Text2 Jsformat自定义使用之代码折叠方式修改
查看>>
OpenMP 中的线程任务调度
查看>>
用Qt写软件系列四:定制个性化系统托盘菜单
查看>>
Asp.net 4.0,首次请求目录下的文件时响应很慢
查看>>
hdu-------(1848)Fibonacci again and again(sg函数版的尼姆博弈)
查看>>
GridView编辑删除操作
查看>>
iOS程序的启动图片图标规范
查看>>
动画 -- 按钮 -- 左右晃动
查看>>
mysql+ssh整合样例,附源代码下载
查看>>
WWF3XOML方式创建和启动工作流 <第十篇>
查看>>
IE6 — 你若安好,便是晴天霹雳 [ 乱弹 ]
查看>>
组合数学 - 母函数的运用 --- 模板题
查看>>
检测MYSQL不同步发邮件通知的脚本
查看>>
Struts2学习笔记1
查看>>
python的ftp上传和下载
查看>>
ASP.NET MVC 中的路由
查看>>
微信公众平台帐号通过昵称无法搜索到怎么办
查看>>
Oracle笔记 六、PL/SQL简单语句块、变量定义
查看>>
Linux 常用命令
查看>>
何为蠕虫病毒
查看>>