如何统一加载常用js和css文件

2025-04-03 04:05:45
推荐回答(1个)
回答1:

为了方便资源管理和提升工作效率,常用的js和css文件的加载应该放在一个统一文件里面完成,也方便后续的资源维护。所以我用js写了以下方法,存放在“sourceController.js”文件内。

/**
* Created by Administrator on 2016/9/10. */function sourceController(){ var root = ""; // 根路径

this.opt = {
root : root
}; // css存储路径
this.css = {
css0 : "javaScript/bootstrap/css/bootstrap.css",
css1 : "css/iconfont/iconfont.css"
}; // js存储路径
this.script = {
script0 : "javaScript/jquery.js",
script1 : "javaScript/bootstrap/js/bootstrap.js"
}; /* 设置文件根目录
* @param url 根目录地址 */
this.setRoot = function(url){
root = url;
}; /* 添加常用资源 */
this.addSource = function(){
addMeta([["http-equiv", "X-UA-Compatible"],["content", "IE=edge"]]);
addMeta([["name", "viewport"],["content", "width=device-width, initial-scale=1"]]); for (var i = 0; i < Object.getOwnPropertyNames(this.css).length; i++){ this.addCss(this.css["css" + i]);
} for (var i = 0; i < Object.getOwnPropertyNames(this.script).length; i++){ this.addScript(this.script["script" + i]);
}
}; /* 添加Script文件
* @param url script文件路径 */
this.addScript = function(url){ var script = document.createElement("script");
script.setAttribute("type","text/javascript"); if (root != "") {
url = root + "/" + url;
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}; /* 添加CSS文件
* @param url css文件路径 */
this.addCss = function(url){ var css = document.createElement("link");
css.setAttribute("rel", "stylesheet"); if (root != "") {
url = root + "/" + url;
}
css.href = url;
document.getElementsByTagName("head")[0].appendChild(css);
}; /* 回调函数
* @param func 回调方法 */
this.callback = function(func){
setTimeout(func,50); // 为了让文件加载完成,页面排布完毕 }; /* 添加meta
* @param attr meta属性,为二维数组 */
function addMeta(attr){ var meta = document.createElement("meta"); for (var i = 0; i < attr.length; i++){
meta.setAttribute(attr[i][0], attr[i][1]);
}
document.getElementsByTagName("head")[0].appendChild(meta);
}
}

在需要引入的页面只需要在加入如下代码就可以一下子引入所有的常用资源了。为了显示美观在所有布局完成之间body设置visibility为hidden,布局完成后显示出来。