1
是否有可能在JavaScript中覆蓋CSSStyleDeclaration對象的textShadow屬性?覆蓋屬性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屬性,但我想要一個更方便的方法。
這是Google Chrome中的一個錯誤。它在Firefox中正常工作。 – duri
實際上,這在Firefox 9中可以正常工作(您應該始終指定您正在測試的瀏覽器):我收到警報並且元素的屬性沒有更改。 – Viruzzo