外部CSSや、sytleタグで指定した background-position の値を Javascriptで取得する方法を

教えてください。

<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 ともに取得できます。

この辺の動作がわかりにくく、仕様の問題なのか
なにか根本的に間違っているのかわかりません。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/06/22 08:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:redwing1 No.1

回答回数541ベストアンサー獲得回数3

id:bushimichi

element.style について聞いているのではありません。

2008/06/17 04:17:54
id:Mars No.2

回答回数203ベストアンサー獲得回数20

ポイント35pt

StyleSheetsObjectから読み取る、ってのはだめでしょうか?

検索するためには少なくともセレクタがわかっている必要があるので代替手段にはなり得ないのですが。

※参考 http://wiki.bit-hive.com/tomizoo/pg/Javascript%20cssRules


調べてみましたが、

IEのように内部的にxとyに分解してるらしい事まではわかったんですが

それを参照する手段は見つけられませんでした。

※参考 http://suika.fam.cx/gate/2005/sw/background-position#anchor-4

id:bushimichi

ありがとうございます。

やっぱり、直接参照する方法はないんですかねぇ。

StyleSheetsObject からの読み取りも検討してみます。

ただ、CSSの記述が多いときに、複数のクラスがかかってる場合などは

検索するのは難しそうですね。

2008/06/17 12:16:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません