Javascript - getOwnPropertyDescriptor& DOM原型元素的defineProperty

时间:2011-08-03 12:34:44

标签: javascript dom properties ecmascript-5

我试图捕获任何IMG标签的“src”属性的读/写操作。为此我试图使用getOwnPropertyDescriptor& HTMLImageElement对象上的defineProperty函数(因为我想避免为每个img定义它们) 我在getOwnPropertyDescriptor上看到了什么:

var proto = Object.getPrototypeOf(HTMLImageElement);
var own = Object.getOwnPropertyDescriptor(proto, "src");
// own is undefined in IE10/FF8/Chrome15

关于上面proto元素的defineProperty,我看到getter / setter函数只能在Chrome中运行,但是当我期望它们运行时,并且getter函数中的“this”是DOM窗口的原型。我的测试代码可以在http://jsfiddle.net/yoav/tUekJ/

找到

getOwnPropertyDescriptor应该在这种情况下工作吗?当JS访问“src”属性时,我是否应该期望触发getter / setter函数?

谢谢!

1 个答案:

答案 0 :(得分:1)

src是一个实例属性,而不是原型属性。使用类似msdn example

的内容
    var own = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, "setAttribute");

<强>参考