ブラウザーに存在するすべてのスタイル プロパティを報告する単純な Javascript ルーチンを作成しました。
var list = new Array();
var div = document.createElement('div');
for (var style in div.style)
list.push(style);
そして、それは機能します。結果は JavaScript 形式であるため、たとえばborderTopLeftRadius
CSS プロパティborder-top-left-radius
、MozAnimationTimingFunction
手段-moz-animation-timing-function
などを意味します。
これは、ライブで見ることができるフィドルです。
(ちなみに、リストには欠陥があります。たとえば、Firefox と IE では、リストには が含まれていませんfloat
が、Chrome では含まれています。Firefox と IE には がありcssFloat
ます。まあ、私はそれで問題ありません。)
ここまでは順調ですね。
ただし、私の目標は、CSS プロパティ名のリストのみを取得することです。getPropertyPriority
ただし、結果には、やなど、プロパティ名ではないエントリも含まれますlength
。私の質問は、どうすればこれらを除外できますか? これらのエントリ (一部は Javascript 関数、一部は読み取り専用プロパティ) と実際の CSS プロパティ名を区別する方法は?
編集:
SVG のみに適用されるプロパティについては気にしません。それらを保持しても問題ありません。
また、問題のあるもののほとんどは、Mr_Green が指摘したように、プロパティのタイプが「文字列」であるかどうかを確認することで除外できますが (更新された fiddleを参照)、リストには CSS プロパティ名ではないエントリがまだいくつかありますcssText
。marks
(後者は一部のブラウザのみ)。それらも除外したいのですが、そうする方法が見つかりません。
W3C は呼び出された関数について言及していますsupports()
が、私はそれを機能させることができませんでした。誰かが私の例を見つけることができますか?