覆盖HTMLElement.classList属性

Eri*_*rik 5 javascript

是否可以覆盖WebKit(Chrome)中的HTMLElement.classList属性?

我正在尝试使用以下代码:

    Object.defineProperty(window.HTMLElement.prototype, "classList", {
        get : function() { 
            console.log("test");
            return 1; 
        },  
        set : function(newValue){  },  
        enumerable : true,  
        configurable : true}
    );  
Run Code Online (Sandbox Code Playgroud)

但是,调用classListDIV仍将返回DOMTokenList.

Sae*_*ati 2

我想你应该做你已经做过的事情HTMLDivElement,而不是HTMLElement。然而,我这样做了,仍然没有结果。

但如果您暂时想完成您的工作,您可以将代码直接应用于实例div本身:

<div id='target' class='first second third'>
</div>
Run Code Online (Sandbox Code Playgroud)

和:

var div = document.getElementById('target');
Object.defineProperty(div, 'classList', {
    get: function(){
        return 'overridden';
    }
});
alert(div.classList);
Run Code Online (Sandbox Code Playgroud)

看看这个小提琴