要素のスタイルを取得するために、Pro JavaScript Techniquesの John Resig のgetStyle
関数を使用しています。
function getStyle(elem, name) {
// J/S Pro Techniques p136
if (elem.style[name]) {
return elem.style[name];
} else if (elem.currentStyle) {
return elem.currentStyle[name];
}
else if (document.defaultView && document.defaultView.getComputedStyle) {
name = name.replace(/([A-Z])/g, "-$1");
name = name.toLowerCase();
s = document.defaultView.getComputedStyle(elem, "");
return s && s.getPropertyValue(name);
} else {
return null;
}
}
ただし、スタイルが指定されていない場合、このメソッドは要素のデフォルト スタイルを返します。
http://johnboxall.github.com/test/getStyle.html
代替テキスト http://img.skitch.com/20081227-8qhxie51py21yxuq7scy32635a.png
要素のスタイルシートで指定されたスタイルのみを取得することは可能ですか (スタイルが定義されていない場合は null を返します)?
アップデート:
なぜ私はそのような獣が必要なのですか?ユーザーが要素のスタイルを設定できる小さなコンポーネントを作成しています。適用できるスタイルの1つはtext-align
-left
です。これにより、ユーザーが要素を中央に配置したかったために中央に配置されているのか、それがデフォルトのスタイルであるために中央に配置されているのかを判断できなくなります。center
right
getStyle
center