DOM 요소에서 setter 메서드를 사용하도록 설정하는 방법을 찾고 있습니다. 그래서 기본적으로이 특정 속성에 대한 모든 호출을 차단하려고합니다. 나는 특정 DOM 요소를 GET/SET 속성을 정의하는 시도했지만, 훨씬 도움이되지 않습니다 :innerHTML 속성 액세스 무시
document.body.innerHTML = 'testValue';
입니다 :
(function(object, property) {
var __value;
Object.defineProperty(object, property, {
// Create a new getter for the property
get: function() {
console.log('access gettter');
return __value;
},
// Create a new setter for the property
set: function (val) {
__value = val;
}
})
})(document.body, 'innerHTML');
이의 결과는 호출하는 것입니다
document.body.innerHTML
access gettter
"testValue"
그러나 이것은 페이지에 영향을주지 않으며, 페이지 본문이 변경되지 않았 음을 나타냅니다. 클로저 내부의 개인 변수 값만 반환됩니다. 자바 스크립트에서이 기능을 구현할 수있는 방법이 있습니까?
왜 그렇게할까요? –
호스트 개체를 변경하는 것은 잘못된 생각입니다. http://perfectionkills.com/whats-wrong-with-extending-the-dom/ –