自己用的一个动态加载js,css文件 预加载图片
//加载js,css 文件 预加载图片
var FileLoading = {
isInclude:function(type,name){ //判断文件是否存在
var es=document.getElementsByTagName(type);
for(var i=0;i<es.length;i++)
if(es[i][type == 'script'?'src':'href'].indexOf(name)!=-1)return true;
return false;
},
css: function(path,callback){ //加载css文件
if(!path || path.length === 0){
throw new Error('argument "path" is required !');
}
if(FileLoading.isInclude('link',path)){
callback&&callback();
return;
}
var head = document.getElementsByTagName('head')[0];
var noLoad = true;
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.onreadystatechange= function () {
if (this.readyState == 'complete' || this.readyState == 'loaded'){
noLoad&&callback&&callback();
noLoad = false;
}
}
link.οnlοad= function(){
noLoad&&callback&&callback();
noLoad = false;
}
link.href = path;
head.appendChild(link);
},
js: function(path,callback){ //加载js文件
if(!path || path.length === 0){
throw new Error('argument "path" is required !');
}
if(FileLoading.isInclude('script',path)){
callback&&callback();
return;
}
var noLoad = true;
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.src = path;
script.type = 'text/javascript';
script.onreadystatechange= function () {
if (this.readyState == 'complete' || this.readyState == 'loaded'){
noLoad&&callback&&callback();
noLoad = false;
}
}
script.οnlοad= function(){
noLoad&&callback&&callback();
noLoad = false;
}
head.appendChild(script);
},
jsArr: function(path,callback){ //批量加载js文件
var callNum = 0;
var pathLen = path.length;
for(var i=0;i<pathLen;i++){
FileLoading.js(path[i],function(){
callNum++;
callNum>=pathLen&&callback&&callback();
})
}
},
cssArr: function(path,callback){ //批量加载css文件
var callNum = 0;
var pathLen = path.length;
for(var i=0;i<pathLen;i++){
FileLoading.css(path[i],function(){
callNum++;
callNum>=pathLen&&callback&&callback();
})
}
},
preload:function(path,as){ //预加载
if(!path || path.length === 0){
throw new Error('argument "path" is required !');
}
if(FileLoading.isInclude('link',path)){
return;
}
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.rel = 'preload';
link.as = as;
link.href = path;
head.appendChild(link);
},
preloadJs:function(path){ //预加载js文件
FileLoading.preload(path,'script');
},
preloadJsArr:function(paths){ //预加载js文件
for(var i in paths){
FileLoading.preloadJs(paths[i]);
}
},
preloadImage:function(path){ //预加载图片
FileLoading.preload(path,'image');
},
preloadImageArr:function(paths){ //批量预加载图片
for(var i in paths){
FileLoading.preloadImage(paths[i]);
}
}
}
FileLoading.js('jsFileUrl',function(){alert('加载成功')});
FileLoading.css('jsFileUrl',function(){alert('加载成功')});
FileLoading.preloadJsArr(['jsFileUrl','jsFileUrl'],function(){alert('预加载成功')});
FileLoading.jsArr(['jsFileUrl','jsFileUrl'],function(){alert('加载成功')});
FileLoading.preloadImage(['imgFileUrl','imgFileUrl'],function(){alert('预加载成功')});
- 点赞
- 收藏
- 分享
- 文章举报
- JS 动态加载 CSS 文件和JS文件,加载图片
- 用JavaScript动态加载CSS和JS文件
- 动态加载外部css或js文件
- Yii2加载我们自己的css和js文件[小技巧]
- WP7,让WebBrowser从独立存储中加载css/js文件以及图片文件
- JavaScript动态加载css和js文件
- 动态加载JS,CSS文件
- 动态加载js、css等文件跨iframe实现
- JS 动态加载js文件和css 文件 同步/异步 两种方式
- 使用jquery动态加载js,css文件 详细出处参考:http://www.jb51.net/article/35287.htm
- 用JavaScript动态加载CSS和JS文件
- 如何实现JavaScript动态加载CSS和JS文件
- 在Asp.Net头部动态加载css和js文件的方法
- ASp.net动态加载js和css文件
- 动态(按需)加载js和css文件
- js动态加载css文件
- 如何使用jquery动态加载js,css文件实现代码
- 异步动态加载js与css文件的js代码
- 动态加载外部css或js文件
- Sencha实现国际化,JS动态加载js、css文件