我想在所有元素上实现一个名为myColor
的假样式。在元素上设置myColor
样式时,应使用相同的值设置实际color
。这样做的明显方法是在__defineSetter__
上使用__defineGetter__
和CSSStyleDeclaration.prototype
。
以下是我的实施http://jsfiddle.net/ghostoy/jJ2GC/,预期结果是点击 SetMyColor 按钮后,文字的颜色变为红色并显示“将颜色设置为:红色”。但是,不会按预期调用setter。
==已更新==
在不同的浏览器(webkit / mozilla / msie)上,它们为非标准样式使用不同的前缀样式名称。例如,Chrome使用webkitTransition
,Firefox使用mozTransition
,MSIE使用msTransition
。但是,我希望使用msTransition
的应用可以在webkitTransition
的Chrome上正常运行而无需修改。
我的问题是:
答案 0 :(得分:0)
您正在处理主机对象,并且无法保证它们的行为与本机JavaScript对象相同。 ECMAScript规范明确指出主机对象不受与本机对象相同的规则约束。当前的浏览器实现各不相同,IE的旧版本根本不提供主机对象的原型,所以我强烈建议不要尝试这样做。请改为使用DOM元素的包装器对象。
答案 1 :(得分:0)
似乎它适用于最新的Chrome。