JAvascript CSSスタイルの取得

1613 ワード

var css = function (_obj,_name){
    var result;
        //     
        _name = _name.toLowerCase();
        //     
        if(_name && typeof value === 'undefined'){
            //        style[]  (          inline style sheets)
            if(_obj.style && _obj.style[_name]){
                result = _obj.style[_name];
            }
            //              embedded style sheets and linked style sheets
            else if(_obj.currentStyle){
                 //      IE currentStyle
                 _name = _name.replace(/\-([a-z])([a-z]?)/ig,function(s,a,b){return a.toUpperCase()+b.toLowerCase();});
                result = _obj.currentStyle[_name];
            }
            //  W3C           Firefox,Opera,safari 
            else if(document.defaultView && document.defaultView.getComputedStyle){
                //  Style    ,    
                var w3cStyle = document.defaultView.getComputedStyle(_obj, null);
                result = w3cStyle.getPropertyValue(_name);
            }
            if(result.indexOf('px')!=-1) result = result.replace(/(px)/i,'');
            return result;
        }
    }

        document.defaultView:w 3 c標準メソッドで、要素のスタイル情報を取得します.外部cssファイルで定義されているスタイルがあるのでelementを使用します.styleは取れないIEならelementが使えます.currentStyle["name"] .
JSの正規表現//は、正規表現がVBの「」のように、コンピュータ//の間にあるのは正規表現の後ろのig、iは大文字と小文字を区別することを表し、gはグローバルモードで東西を区別せず、グローバルを開かなければigを書く必要はありません/[^0-9*#-]/igは大文字と小文字を区別し、グローバルモード/[^0-9*#-]/iは大文字と小文字を区別し、非グローバルモード/[^0-9*#-]/gは大文字と小文字を区別しません.グローバルモード/[^0-9*#-]/東西を区別せず、非グローバルモード