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*#-]/東西を区別せず、非グローバルモード