激情燃烧的木炭

微笑生活,努力工作,让我们做得更好!

Javascript 动态加载脚本(JS)资源(.css .less)文件等

📚 学习

file. file. file. file. file. file. file. file. file. file. file. file. if (!onload = file.onload = file.appendChild(file);onload = file.onload = file.appendChild(file); i if (this. try { file. try { file.js") { file = document.

/*
 * 可以动态加载 js,css,less文件或者加载 js,css文本内容
 * 并可以过滤重复的资源文件,防止二次加载
 * 使用:res.load('地址A,地址B,地址C,...',成功回到函数)
 *       res.load({‘地址A’,‘地址B’,‘地址C’…},成功回到函数)
 *       res.fileLoad('地址A,地址B,地址C,...',成功回到函数)
 *       res.js('地址',成功回到函数) :直接加载 js 脚本代码
 *       res.css('地址',成功回到函数):直接加载 样式代码
 */
res: {
// 缓存已经加载过的资源文件
resList: [],

/*获取文件类型,后缀名,小写*/
fileExt: function(url) {
if (url != null && url.length > 0) {
return url.substr(url.lastIndexOf(".")).toLowerCase();
}
return "";
},

/*文件是否已加载*/
fileExist: function(url) {
if (this.resList != null && this.resList.length > 0) {
var len = this.resList.length;
for (var i = 0; i < len; i++) {
if (this.resList[i] == url) {
return true;
}
}
}
return false;
},

/* 加载文件 */
fileLoad: function(url, callback) {
url = FFIOO().SYS.root(url);

if (!this.fileExist(url)) {
var ext = this.fileExt(url);
var file = null;

if (ext == ".js") {
file = document.createElement('script');
file.type = 'text/javascript';
file.src = url;
} else if (ext == ".css") {
file = document.createElement('link');
file.href = url;
file.type = "text/css";
file.rel = "stylesheet";
} else if (ext == ".less") {
file = document.createElement('link');
file.href = url;
file.type = "text/css";
file.rel = "stylesheet/less";
}

if (typeof(callback) == 'function') {
file.onload = file.onreadystatechange = function() {
if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {
callback();
file.onload = file.onreadystatechange = null;
}
}
}

this.resList.push(url);
document.getElementsByTagName('head')[0].appendChild(file);
} else {
if (typeof(callback) == 'function') {
callback;
}
}
},

/* 加载资源文件列表 */
load: function(files, callback) {
var list = [];
if (typeof files === "object") {
list = files;
} else {
/*如果文件列表是字符串,则用,切分成数组*/
if (typeof files === "string") {
list = files.split(",");
}
}
if (list != null && list.length > 0) {
var count = 0;

for (var i = 0; i < list.length; i++) {
this.fileLoad(list[i], function() {
count++;

if (count == list.length) {
callback;
}
});
}
}
},

append: function(content, type, callback) {
if (content && content.length > 3) {
type = type || 'js';

var file = null;
if (type == "js") {
file = document.createElement('script');
file.type = "text/javascript";
try {
file.appendChild(document.createTextNode(content));
} catch (ex) {
file.text = content;
}
} else {
file = document.createElement('style');
file.type = "text/css";
try {
file.appendChild(document.createTextNode(content));
} catch (ex) {
file.styleSheet.cssText = content;
}
}

if (typeof(callback) == 'function') {
file.onload = file.onreadystatechange = function() {
if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {
callback();
file.onload = file.onreadystatechange = null;
}
}
}

document.getElementsByTagName('head')[0].appendChild(file);
}

},

js: function(content, callback) {
this.append(content, 'js', callback)
},

css: function(content, callback) {
this.append(content, 'css', callback)
}
}
来源: 编辑: 关键词:file if url
  • Javascript 中全局错误捕捉