0

私はCSSコードを編集するための小さなjavascriptスクリプトに取り組んでいますが、他のブラウザーと比較して、Internet Explorerには、多くの...特殊性があることがわかりました。たとえば、document.stylesheetオブジェクトのrulesオブジェクトは、ほとんどのブラウザではcssRuleと呼ばれ、IEではruleと呼ばれます。

ここでやりたいのは、ウィンドウのサイズ(window.innerWidth&document.body.clientWidth)を含むオブジェクトのプロパティの参照を割り当てて、IEオブジェクト名を使用する必要があるかどうかを毎回チェックしないようにすることです。 「通常の」もの。

それは良い/悪い考えですか?

質問を投稿する前に、私はそれについてもう少し考えて、解決策を思いつきました。

function CommonObject(obj, propertyName){
    this.get = function() { return obj[propertyName]; }
}

これを行う別の/より良い方法はありますか?

ありがとう

(ええ、これを行う必要はないことはわかっています。特に、小さなスクリプトを作成していて、パフォーマンスはそれほど問題ではないので、ほとんど興味があります。)

4

1 に答える 1

0

マッピング テーブルを使用します。

var css = {"rules": {"ie":"rule","w3":"cssRule"} }

var browser = !!window.XPathEvaluator ? "w3" : "ie"

var foo = document.styleSheets["0"][css.rules[browser] ]
于 2014-03-01T08:33:27.430 に答える