首页 > 代码库 > js文件动态添加的实现
js文件动态添加的实现
基于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,如果已经存在,则不加载;总之会在判断完成后在执行回调。
js文件动态添加的实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。