У меня есть функция Javascript, которая принимает список узлов HTML, но ожидает массив Javascript (он запускает для него некоторые методы Array), и я хочу передать ему результат, Document.getElementsByTagName
который возвращает список узлов DOM.
Сначала я подумал об использовании чего-нибудь простого, например:
Array.prototype.slice.call(list,0)
И это прекрасно работает во всех браузерах, за исключением, конечно, Internet Explorer, который возвращает ошибку «Ожидается объект JScript», поскольку очевидно, что список узлов DOM, возвращаемый Document.getElement*
методами, не является объектом JScript, достаточным для того, чтобы быть целью вызова функции.
Предостережения: я не возражаю против написания кода для Internet Explorer, но мне не разрешено использовать какие-либо библиотеки Javascript, такие как JQuery, потому что я пишу виджет для встраивания в сторонний веб-сайт, и я не могу загружать внешние библиотеки, которые создаст конфликт для клиентов.
Моя последняя неудачная попытка - перебрать список узлов DOM и создать массив самостоятельно, но есть ли способ сделать это лучше?