我想墊片Element.prototype.children
它應該會返回一個HTMLCollection創建的HTMLCollection
然而
var h = new HTMLCollection();
//TypeErrror: HTMLCollection is not a constructor
和
var h = Object.create(HTMLCollection.prototype);
h[0] = div;
h.item(0);
// Could not convert JavaScript argument
測試火狐7 Chrome
除了墊片HTMLCollection
有什麼方法可以與它進行交互?
還提供this github issue反饋,如果你能提出一個解決方案
我相信這樣做的正確方法是定義自己的自定義'MyHTMLCollection'構造函數,然後用它來代替主機構造函數'HTMLCollection'(這是不可靠的) –
雖然我無法回答你的具體問題HTMLCollection,擴展原生DOM(託管)對象通常被認爲是不好的做法。看到這篇文章的詳細解釋爲什麼:http://perfectionkills.com/whats-wrong-with-extending-the-dom/ – skyline3000
@ skyline3000我完全知道後果。我們需要這樣做來生成DOM墊片。我們沒有使用自定義方法(邪惡)來擴展DOM,而是使用應該按照DOM4規範存在的方法 – Raynos