Tôi đang cố gắng để Shim Element.prototype.children
mà phải trả lại một HTMLCollectiontạo HTMLCollection
Có một window.HTMLCollection
Tuy nhiên
var h = new HTMLCollection();
//TypeErrror: HTMLCollection is not a constructor
và
var h = Object.create(HTMLCollection.prototype);
h[0] = div;
h.item(0);
// Could not convert JavaScript argument
thử nghiệm Firefox 7 và Chrome
Ngoài việc cắt tỉa HTMLCollection
có cách nào để tương tác với nó không?
Cũng cung cấp thông tin phản hồi trên this github issue nếu bạn có thể đề nghị một giải pháp
Tôi tin rằng cách chính xác để làm điều này là xác định hàm tạo MyHTMLCollection' tùy chỉnh của riêng bạn và sau đó sử dụng nó thay vì hàm tạo máy chủ 'HTMLCollection' (không đáng tin cậy) –
Trong khi tôi không thể trả lời câu hỏi cụ thể của bạn về HTMLCollection, nó thường được coi là thực hành xấu để mở rộng các đối tượng DOM (được lưu trữ) gốc. Xem bài viết này để biết giải thích chi tiết tại sao: http://perfectionkills.com/whats-wrong-with-extending-the-dom/ – skyline3000
@ skyline3000 Tôi hoàn toàn nhận thức được hậu quả. Chúng ta cần làm điều này để tạo ra một DOM-shim. Chúng tôi không mở rộng DOM với các phương thức tùy chỉnh (điều ác) nhưng với các phương thức nên tồn tại theo đặc tả DOM4 – Raynos