我试图捕获任何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函数?
谢谢!
答案 0 :(得分:1)
src
是一个实例属性,而不是原型属性。使用类似msdn example:
var own = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, "setAttribute");
<强>参考强>