styleSheet的动态修改

对于styleSheet的修改,IE是可以直接操作的:
document.styleSheets[ 1 ].href  =   " css/fontsize10.css " ;     // IE

但是,根据DOM文档中对styleSheet的接口定义:
//  Introduced in DOM Level 2:
interface StyleSheet  {
  readonly attribute DOMString    type;
                   attribute 
boolean        disabled;
  readonly attribute Node             ownerNode;
  readonly attribute StyleSheet    parentStyleSheet;
  readonly attribute DOMString    href;
  readonly attribute DOMString    title;
  readonly attribute MediaList      media;
}
;
href属性是readonly的,因此FireFox等遵循标准模型的浏览器就只能取得而不能修改属性了。

为了满足动态地修改页面的shyleSheet的需求(比如:页面整体风格的动态替换等),只能通过别的途径来实现了。
我的方法其实很简单,用innerHTML就可以了:
1.将“link”定义在"span"中:
< span id = " globalCss " >< link rel = " stylesheet "  type = " text/css "  href = " css/fontsize10.css " ></ span >

2.通过
innerHTML来修改整体的link内容:
     function  changeCss(type)  {
    
        
var obj = document.getElementById("globalCss");
            
        
switch( type ) {        
        
            
case "s":                
                obj.innerHTML 
= '<link type="text/css" rel="stylesheet" href="css/fontsize10.css">';    //FF,Opera
                document.styleSheets[1].href = "css/fontsize10.css";    //IE
                break;
            
            
case "m":
                obj.innerHTML 
= '<link type="text/css" rel="stylesheet" href="css/fontsize14.css">';
                document.styleSheets[
1].href = "css/fontsize14.css";
                
break;
            
            
case "l":
                obj.innerHTML 
= '<link type="text/css" rel="stylesheet" href="css/fontsize16.css">';
                document.styleSheets[
1].href = "css/fontsize16.css";
                
break;
        }

    }

对于IE,还是使用了直接修改的方法。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值