Javascript - getOwnPropertyDescriptor & defineProperty для элементов прототипа DOM - PullRequest
1 голос
/ 03 августа 2011

Я пытаюсь перехватить операции чтения / записи для любого атрибута тега IMG «src».Для этого я пытался использовать функции getOwnPropertyDescriptor и defineProperty для объекта HTMLImageElement (поскольку я хотел бы избежать их определения для каждого img) Что я видел в отношении getOwnPropertyDescriptor:

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

Относительно defineProperty дляВ приведенном выше элементе proto я увидел, что функции getter / setter выполняются только в Chrome, но не тогда, когда я ожидаю их, и что «this» внутри функции getter является прототипом окна DOM.Мой тестовый код для этого можно найти по адресу http://jsfiddle.net/yoav/tUekJ/

Должен ли getOwnPropertyDescriptor работать в этом случае?Стоит ли ожидать запуска функций получения / установки при обращении JS к атрибуту "src"?

Спасибо!

1 Ответ

1 голос
/ 24 января 2012

src - это свойство экземпляра, а не свойство прототипа.Используйте что-то вроде msdn примера :

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

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...