IE nicht unterstützt 'insertBefore'
Ich habe ein problem mit diesem code :
var logo = document.getElementById("move_this");
prependElement('container', logo);
function prependElement(parentID, child) {
parent = document.getElementById(parentID);
parent.insertBefore(child, parent.childNodes[0]);
}
Im IE habe ich eine Fehlermeldung:
SCRIPT438: Objekt unterstützt keine Eigenschaft oder Methode 'insertBefore'
Gibt es eine Möglichkeit dieses problem zu beheben?
- Auf der Suche fand ich dies stackoverflow.com/questions/5172202/...
- Welche IE-version?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie das verwenden:
sonst Elternteil wird global sein, aber es ist immer eine Globale parent-Objekt, das Elternteil Fenster(und es ist read-only).
Außerdem:
DH erfordert, als 2. argument ein Gültiger Knoten oder null, so sicher sein, dass Eltern childNodes um Fehler zu vermeiden:
(parent.hasChildNodes())?parent.childNodes[0]:null
verkürzt werden kann, umparent.childNodes[0] || null
insertBefore
funktioniert einwandfrei inIE
so lang wie der 2. parameter eine gültige DOM-element, odernull
(typeof null
istObject
und so ist eintypeof
DOM-element).Für eine
Array
jede out-of-bound-index (in diesem Fall ist0
alschildren[]
ist leer) zurückundefined
. IE funktioniert nicht mehr in der folgende Fall als 2. param wirdundefined
-So, einen besseren Ansatz für diesen Fall wird