Comme d'autres l'ont mentionné, vous devez appeler insertBefore
sur le parent du noeud <textarea>
. Selon la documentation de l'API pour Node.insertBefore:
Résumé
Inserts le noeud spécifié avant un élément de référence comme un enfant du noeud courant.
Syntaxe
var insertedElement = parentElement.insertBefore(newElement, referenceElement);
Si referenceElement est nul, newElement est inséré à la fin de la liste des nœuds enfants.
insertedElement
Le noeud étant inséré, soit newElement
parentElement
Le parent du noeud nouvellement inséré.
newElement
Le noeud à insérer.
referenceElement
Le noeud devant lequel newElement est inséré.
Donc, vous voulez dire quelque chose le long des lignes de:
parent_element_goes_here.insertBefore(inserting,document.getElementById("test"));
Au lieu de:
document.insertBefore(inserting,document.getElementById("test"));
En outre, votre code peut être exécutaient avant que le DOM a terminé être chargé. Vous pouvez vous assurer que tous les éléments DOM sont chargés à l'aide du gestionnaire d'événements
window.onload. A partir des documents MDC:
L'événement de chargement se déclenche à la fin du processus de chargement de document. À ce stade, tous les objets dans le document sont dans le DOM, et toutes les images et les sous-cadres ont terminé le chargement.
Ainsi, au lieu d'appeler directement votre code, vous feriez ceci:
window.onload=function(){
...
}
votre code ne fonctionne pas . retarder le script ne fait rien ici parce que le dom est bien. – lincolnk
Merci, le lien que vous avez fourni était très utile. –