2

IMG タグの「src」属性で読み取り/書き込み操作をキャプチャしようとしています。その目的のために、私は HTMLImageElement オブジェクトで getOwnPropertyDescriptor & 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 関数がトリガーされることを期待する必要がありますか?

ありがとう!

4

1 に答える 1

2

srcプロトタイプ プロパティではなく、インスタンス プロパティです。msdnの例のようなものを使用します。

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

参考文献

于 2012-01-24T07:07:19.673 に答える