教えてください。
<style type="text/css">
#hogehoge{
background-image: url('/hogehoge.gif');
background-position: 10px 10px;
}
</style>
elem = document.getElementById('hogehoge');
FireFox2 の場合
document.defaultView.getComputedStyle(elem, null)["backgroundPosition"];
上記の方法では、値が取れませんでした(空、空欄)。
backgroungPosition → background-position とかに変えたら
undefined となりました。
IE6の場合
elem.currentStyle["backgroundPosition"];
では、値が取れませんでしたが、backgroundPositionX backgroundPositionY
で値は取れました。
また、background のほかの属性
backgroundImage
backgroundColor
backgroundAttachment
backgroundRepeat
は、IE6 FireFox2 ともに取得できます。
この辺の動作がわかりにくく、仕様の問題なのか
なにか根本的に間違っているのかわかりません。
StyleSheetsObjectから読み取る、ってのはだめでしょうか?
検索するためには少なくともセレクタがわかっている必要があるので代替手段にはなり得ないのですが。
※参考 http://wiki.bit-hive.com/tomizoo/pg/Javascript%20cssRules
調べてみましたが、
IEのように内部的にxとyに分解してるらしい事まではわかったんですが
それを参照する手段は見つけられませんでした。
※参考 http://suika.fam.cx/gate/2005/sw/background-position#anchor-4
ありがとうございます。
やっぱり、直接参照する方法はないんですかねぇ。
StyleSheetsObject からの読み取りも検討してみます。
ただ、CSSの記述が多いときに、複数のクラスがかかってる場合などは
検索するのは難しそうですね。
element.style について聞いているのではありません。