0

我正在编写一个小的 javascript 脚本来编辑 CSS 代码,我发现与其他浏览器相比,Internet Explorer 有很多……特殊性,如果我可以这么说的话。例如,document.stylesheet 对象的规则对象在大多数浏览器中称为 cssRule,在 IE 中称为规则。

我想在这里做的是分配包含窗口大小(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 回答