Javascript 动态加载 CSS STYLE 元素

http://www.loveyuki.com/Article/Javascript_Load_Style_Elements.aspx

用 Javascript 动态加载一个 CSS 文件的方法很简单,但是如果想要加载一个 CSS STYLE 元素,里面写入一些 CSS 语句就没有那么简单了。不过也难不倒我们,查一查 MSDN 和 Mozilla 的开发网站就可以写出来了,下面的语句兼容了 IE,Firefox,Safari,Opera 没有测试。

 

 

 1 ExpandedBlockStart.gif ContractedBlock.gif   function  AttachStyle(ownDoc,styCss)  {  
 2     var elmSty = ownDoc.createElement('STYLE');  
 3     elmSty.setAttribute("type""text/css");  
 4ExpandedSubBlockStart.gifContractedSubBlock.gif     if (elmSty.styleSheet) {  
 5         elmSty.styleSheet.cssText=styCss;   
 6ExpandedSubBlockStart.gifContractedSubBlock.gif     }
 else {   
 7         elmSty.appendChild(ownDoc.createTextNode(styCss));   
 8     }
  
 9     ownDoc.getElementsByTagName("head")[0].appendChild(elmSty);  
10}
 

 

这种写法不科学,你认为OO么?而且很不灵活,不适合Ajax异步转载!轻微鄙视一下!

最好使用CSS外部导入法加载!

 

 1 ExpandedBlockStart.gif ContractedBlock.gif   function  AttachStyle() {
 2ExpandedSubBlockStart.gifContractedSubBlock.gif this.load=function(URL) {  
 3     var css=document.createElement('link');  
 4     css.type="text/css"
 5     css.rel="="stylesheet"
 6     css.src=URL; 
 7     var head=document.getElementsByTagName("head")[0]; 
 8     head.appendChild(css);  
 9    var self=this;
10
11   css.onload=css.onreadystatechange=function(){
12   if(this.readyState&&this.readyState=="loading") return;
13   self.onsuccess();
14   }
15   css.onerror=function(){
16   head.removeChild();
17   self.onfailure();
18   }
19 }
20 this.onsuccess=function(){}//加载成功事件
21 this.onfailure=function(){}//加载失败事件
22}

23

 

 

 

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值