Я изучил, как работает геттер / сеттер ...
document.body.innerHTML = 'This will change the site';
Object.defineProperty(document.body, 'innerHTML', {
get: function(){
console.log('[FAKED] document.innerHTML');
return false;
},
set: function(val){
console.log('[FAKED] document.innerHTML = '+val);
return false;
}
});
alert(document.body.innerHTML); // false
Это может быть полезно, если браузер не поддерживает innerHTML или вы хотите сделать хороший опрос для <progress>
. Однако если вы достаточно глупы, чтобы выполнить этот код. как вы могли вернуть его к прежнему состоянию?
Ctrl+A
, а затемDelete
;) - person Aprillion   schedule 07.05.2012polyfill
, никогда не должно быть необходимостиrestore
, поскольку они должны заполнять только пробелы -if (!('innerHTML' in document.body)) Object.defineProperty(...);
- person Jonathan Lonowski   schedule 07.05.2012