是否可以覆盖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属性,但是我想要一种更方便的方法。

最佳答案

我的问题是由Chrome浏览器中的错误引起的(请参阅帖子)。
在Firefox 8中,代码按预期工作。

关于javascript - 覆盖属性CSSStyleDeclaration.textShadow?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8225149/

10-11 06:10