getElementsByTagName() und IE

Arndtinho

Erfahrenes Mitglied
Hallo,

ich möchte ein XML-Dokument auslesen.
HTML:
function fillEditFormular() {

   if( xmlHttp.readyState == 4 ) {
		
      if( xmlHttp.status == 200 ) {
			
         xmlResponse    = xmlHttp.responseXML;
         xmlDocElement = xmlResponse.documentElement;
			
         name_node  = xmlDocElement.getElementsByTagName('name').item(0);
         vname_node = xmlDocElement.getElementsByTagName('vname').item(0);
			
         name   = name_node.firstChild.data;
         vname  = vname_node.firstChild.data;
			
         document.getElementById("name").value  = name;
         document.getElementById("vname").value = vname;
      }
      else {
         alert( 'Fehler in fillEditFormular()' );
      }
   }
}
Dies funktioniert im Firefox auch ganz gut. Nur im IE bekomme ich den Fehler:
"Das Objekt unterstützt diese Eigenschaft oder Methode nicht."

Mit
HTML:
name = xmlDocElement.firstChild.data;
funktioniert es im IE.
Meine Vermutung daher: der IE hat ein Problem mit der Methode getElementsByTagName(). Ist das so und wie kann man dieses Problem lösen?

Gruß,
Arndtinho
 
Hi,

bei mir scheint die Variable vname das Problem zu sein. Ändere ich sie in v_name funktioniert es.

Ciao
Quaese
 
Das ist ja sehr komisch.
Hab das auch mal getestet und es klappt. Jetzt fehlt nur noch die Erklärung, warum das Script sich so verhält. Denn sobald ich einen anderen Variablennamen (testname) einsetze klappt es nicht mehr.

Gruß,
Arndtinho
 
So, ich habe nun folgendes gemacht und die Funktion ein wenig umgeschrieben. Das ganze sieht nun so aus:
HTML:
function fillEditFormular() {

   if( xmlHttp.readyState == 4 ) {
		
      if( xmlHttp.status == 200 ) {
			
         xmlResponse    = xmlHttp.responseXML;
         xmlDocElement = xmlResponse.documentElement;
			
         name = xmlDocElement.getElementsByTagName('name')[0].firstChild.nodeValue;
	 vname  = xmlDocElement.getElementsByTagName('vname')[0].firstChild.nodeValue;
         
         document.edituser.name.value  = name;
	 document.edituser.vname.value = vname;
      }
      else {
         alert( 'Fehler in fillEditFormular()' );
      }
   }
}
Das klappt auch im IE. Nun hab gibts noch ein kleineres Problemchen. Wenn die Seite geladen wird, sind die Formularfelder leer. Um diese im FF zu füllen, muss ich beim ersten Aufruf des Script zweimal auf den Link klicken. Danach funktioniert es mit einmaligem Klick auf den Link.
Woran liegt das? Und gibt es da eine Lösung?

Gruß,
Arndtinho
 

Neue Beiträge

Zurück