AJAX - IE7 schreibt nicht in !

Scheuch

Lieutenant
Registriert
Jan. 2004
Beiträge
588
Hallo,

ich habe eine simple AJAX-Anwendung gebaut, die ein Servlet anfragt und eine Liste mit <option>-Elementen zurückliefert, welche ich <select>-Gruppe einfüge.
FF macht was ich will, Opera macht was ich will, aber IE7 weigert sich die Elemente in der Liste anzuzeigen, d.h. er zeigt zwar die Auswahlliste an, allerdings leer.

Gebe ich (im IE7) die Liste so aus, sprich packe sie bspw. in <pre> werden alle Elemente auch im IE7 dargestellt - aber nicht in der Auswahlliste. Habe ich einen Fehler in meinem Code oder ist das mal wieder eines der "Features" des IE7?

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head></head>
	<body>
		<script type="text/javascript">
		<!--
		var xmlHttp;
		
		function listTerms(fieldName, restriction, nr){
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null){
				alert ("Error: Your browser does not support AJAX!");
				return;
			} 
			
			var url="http://localhost:8080/ajax/DisCatLists";
			url=url+"?fieldName="+fieldName;
			url=url+"&restriction="+restriction;
			
			xmlHttp.open("GET",url,true);
			xmlHttp.onreadystatechange=function(){
				if(xmlHttp.readyState==4){
					if(xmlHttp.status!=200) {
						alert("Error:"+xmlHttp.status); 
					}else{
						document.getElementById('catList' + nr + 'Values').innerHTML = xmlHttp.responseText;
					}
				}
			};			
			xmlHttp.send(null);
		}

		function GetXmlHttpObject(){
			var xmlHttp=null;
			try{
				// Firefox, Opera 8.0+, Safari
			  	xmlHttp=new XMLHttpRequest();
			}
			catch (e){
				// Internet Explorer
				try{
			    	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			    }
			  	catch (e){
			    	xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			    }
			}		
			return xmlHttp;
			
		}
		//-->
		</script>
				
		<select size="10" multiple="multiple" id="catList0Values"></select>

		<script type="text/javascript">
		listTerms("attributeDescription", "", "0");
		</script>
	</body>
</html>

@Mods
Könnte ein Mod meine Überschrift in "AJAX - IE7 schreibt nicht in Auswahllisten!" ändern ... das letzte Wort habe ich wohl vergessen -_-
 
Zuletzt bearbeitet:
N'abend,

ich würde einfach mal probieren, ein JavaScript-Framework zu verwenden. Ich persönlich habe mit Prototype sehr gute Erfahrungen gemacht. Dieses hilft Dir bei solchen Fehlern weiter, weil es eben für den MSIE aber auch andere Browser bereits eine Speziallösung implementiert hat und Dich die Browsergrundlage nicht weiter interessieren braucht. Ob nun dieser spezielle Fehler da drin behandelt wird, kann ich ehrlich nicht sagen, aber probieren geht bekantlich über studieren. Evtl solltest Du, um den Fehler zu vermeiden, das gesamte Select-Element neu per Ajax anfordern.


Ciao
 
Moin,

Frameworks verwende ich schon, z.B. YUI. Prototype kannte ich bislang noch nicht, werde ich mir aber mal anschauen, danke!

Wie von MS (und dir) vorgeschlagen, liefere ich nun nicht nur <option>-Elemente zurück, sondern gleich das ganze <select>-Element nebst Einträgen und gebe es in einem <div> aus.
 
Zurück
Oben