Ich habe eine Javascript-Funktion, die eine Liste von HTML-Knoten akzeptiert, aber ein Javascript-Array erwartet (es werden einige Array-Methoden ausgeführt), und ich möchte ihr die Ausgabe zuführen, die Document.getElementsByTagNameeine DOM-Knotenliste zurückgibt.
Anfangs dachte ich daran, etwas Einfaches zu verwenden wie:
Array.prototype.slice.call(list,0)
Und das funktioniert in allen Browsern einwandfrei, außer natürlich Internet Explorer, der den Fehler "JScript-Objekt erwartet" zurückgibt, da die von Document.getElement*Methoden zurückgegebene DOM-Knotenliste anscheinend kein JScript-Objekt ist, das ausreicht, um das Ziel eines Funktionsaufrufs zu sein.
Vorsichtsmaßnahmen: Es macht mir nichts aus, Internet Explorer-spezifischen Code zu schreiben, aber ich darf keine Javascript-Bibliotheken wie JQuery verwenden, da ich ein Widget schreibe, das in die Website eines Drittanbieters eingebettet werden soll, und ich kann keine externen Bibliotheken laden schafft Konflikte für die Kunden.
Meine letzte Anstrengung besteht darin, die DOM-Knotenliste zu durchlaufen und selbst ein Array zu erstellen. Aber gibt es eine bessere Möglichkeit, dies zu tun?