永发信息网

如何动态加载外部CSS与JS文件

答案:5  悬赏:10  手机版
解决时间 2021-04-04 01:49
如何动态加载外部CSS与JS文件
最佳答案
动态加载外部css样式及css样式,参考代码如下:
// 动态加载外部js文件 
var flag = true; 
if( flag ){ 
loadScript( "js/index.js" ); 
}; 
function loadScript( url ){ 
var script = document.createElement( "script" ); 
script.type = "type/javascipt"; 
script.src = url; 
document.getElementsByTagName( "head" )[0].appendChild( script ); 
}; 
// 动态加载js 
if( flag ){ 
var script = document.createElement( "script" ); 
script.type = "text/javascript"; 
script.text = " "; 
document.getElementsByTagName( "head" )[0].appendChild( script ); 
}; 
// 动态加载外部css样式 
if( flag ){ 
loadCss( "css/base.css" ); 
}; 
function loadCss( url ){ 
var link = document.createElement( "link" ); 
link.type = "text/css"; 
link.rel = "stylesheet"; 
link.href = url; 
document.getElementsByTagName( "head" )[0].appendChild( link ); 
}; 
// 动态加载css样式 
if( flag ){ 
var style = document.createElement( "style" ); 
style.type = "text/css"; 
document.getElementsByTagName( "head" )[0].appendChild( style ); 
var sheet = document.styleSheets[0]; 
insertRules( sheet,"#gaga1","background:#f00",0 ); 
}; 
function insertRules( sheet,selectorTxt,cssTxt,position ){ 
if( sheet.insertRule ){ // 判断非IE浏览器 
sheet.insertRule( selectorTxt + "{" + cssTxt +"}" ,position ); 
}else if( sheet.addRule ){ //判断是否是IE浏览器 
sheet.addRule( selectorTxt ,cssTxt ,position ) 

}
全部回答
动态加载js:
function loadScript(url,callback){
var script = document.createElement('script');
script.type= "text/javascript";
if(script.readyState){// IE
script.onreadystatechange = function(){
if(script.readyState == 'loaded' || script.readyState == 'complete'){
script.onreadystatechange = null;
callback();
}
}
}else{ // !IE
script.onload = function(){
callback();
}
}
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);
}
动态加载css,