我正在编写一个小的javascript脚本来编辑CSS代码,我发现有很多…如果我可以这么说的话,与其他浏览器相比,ie的一些特殊之处。例如文档的规则对象。样式表对象在大多数浏览器中称为cssRule,在IE中称为rule。
我在这里要做的是赋值一个对象的属性引用,该对象包含窗口的大小(窗口)。innerWidth,document.body.clientWidth),以避免每次检查是否应该使用IE对象名称或"正常"名称。
这是个好主意/坏主意吗?
在发布这个问题之前,我想了一下,想出了一个解决方案。
function CommonObject(obj, propertyName){
this.get = function() { return obj[propertyName]; }
}
有其他/更好的方法来做这件事吗?
感谢(是的,我知道这样做真的没有必要,特别是因为我正在制作一个小脚本和性能不是真正的问题,但我主要是好奇。)
使用映射表:
var css = {"rules": {"ie":"rule","w3":"cssRule"} }
var browser = !!window.XPathEvaluator ? "w3" : "ie"
var foo = document.styleSheets["0"][css.rules[browser] ]