Мне было интересно, можно ли было обнаружить изменения свойств, внесенные в элементы через их атрибуты.
Например, мы можем добавить наследуемые свойства и методы к элементам, работая с объектом HTMLElement.prototype
и его унаследованными прототипами, например ::100100
// Add our global property
HTMLElement.prototype.sandwich = 'double-decker variety';
// Get the <body> element
let body = document.body;
body.sandwich // => 'double-decker variety'
Итак, есть ли способ распространить это на атрибуты элемента?
Или я должен вместо этого работать с Attr.prototype
объектом?
// Add our global property
Object.defineProperty(HTMLElement.prototype, 'burger', {
...,
set: function changeBurger(newValue) {
// Our response
console.log(`Response: You changed our '${oldValue}' burger to a '${newValue}'`)
}
});
// Get the <body> element
let body = document.body;
// Response: You changed our 'king-sized' burger to a 'family pack'
body.burger = 'family pack';
// Response: You changed our 'family pack' burger to a 'kids delight'
body.setAttribute('burger', 'kids delight');
Приведенный выше пример также должен применяться к элементам, которых нет в DOM или текущем документе, т. Е. Объектам, инициализированным из конструктора HTMLElement
.
Извините, если вопрос кажется немного расплывчатым, и я надеюсь, что приведенные мной примеры могут прояснить тему вопроса.
Спасибо всем, кто хочет найти время, чтобы ответить.