是否可以在JavaScript中覆盖CSSStyleDeclaration对象的textShadow属性?
我尝试了以下内容:
var element = document.createElement('div');
Object.defineProperty(element.style, 'textShadow', {
get: function() {
console.warn("Getter called");
return "";
},
set: function(value) {
console.log("Setter called");
},
configurable: true
});
element.style.textShadow = "black 3px 3px 10px"; // Works as usual
正如最后一行所述,属性的覆盖并不真正起作用。我发现textShadow不是CSSStyleDeclaration元素的自己的属性,但它来自CSS2Properties接口。但是,我不知道如何获得CSS2Properties接口...
编辑:我已经在Firefox 7.0.1和Chrome 15上进行了测试。在Chrome中它不起作用,但FF 8确实运行良好。
是否有更通用的方法来覆盖所有元素的所有textShadow属性?我可以迭代每个HTMLElement并覆盖textShadow属性,但我想要一个更方便的方法。
答案 0 :(得分:0)
我的问题是由Chrome浏览器中的错误引起的(请参阅帖子)。 在Firefox 8中,代码按预期工作。