是否可以覆盖WebKit(Chrome)中的HTMLElement.classList属性?
我正在尝试使用以下代码:
Object.defineProperty(window.HTMLElement.prototype, "classList", {
get : function() {
console.log("test");
return 1;
},
set : function(newValue){ },
enumerable : true,
configurable : true}
);
但是,调用DIV的classList
仍然会返回DOMTokenList。
答案 0 :(得分:3)
你的div没有从原型获得classList
。它是div的直接财产。永远不会搜索原型链:
myDiv.hasOwnProperty("classList"); // returns true
答案 1 :(得分:2)
我想您应该使用HTMLDivElement
而不是HTMLElement
完成所做的工作。但是,我这样做了,但仍然没有结果。
但如果您想暂时执行工作,可以直接在div
实例本身上应用代码:
<div id='target' class='first second third'>
</div>
和
var div = document.getElementById('target');
Object.defineProperty(div, 'classList', {
get: function(){
return 'overridden';
}
});
alert(div.classList);
请参阅此fiddle。