是否可以覆盖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。
发布于 2011-11-22 02:50:57
我想你应该做你对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。
发布于 2011-11-22 02:48:29
您的div没有从原型中获取classList。它是div的直接属性。永远不会搜索原型链:
myDiv.hasOwnProperty("classList"); // returns truehttps://stackoverflow.com/questions/8216792
复制相似问题