Das sollte sich ja bspw. mit der Developer Toolbar untersuchen lassen, wenn man mit
der mal die DOM-Struktur unter die Lupe nimmt.
Das war der entscheidende Tip... wusste nicht, dass es für den IE was vergleichbares zu
Firebug gibt... egal. Ich konnte den Fehler eingrenzen.
Im IE 6 werden durch den httpRequest 5 DIVs erzeugt, alle mit indentischer ID, die ersten
4 leer, das 5. dann mit dem eigentlichen HTML-Code für das Menü. Wenn ich jetzt versuche,
mittels Event das Menu verschwinden zu lassen, spricht die Funktion evtShowMenu (s. oben)
natürlich das erste Element mit der ID im DOM an und... es passiert "sichtbar" nix.
Bleibt die Frage, was stimmt an dem httpRequest nicht. Für mich siehts so aus, alsob
http.onreadystatechange vor dem empfangen der HTML-Daten auch den kompletten TCP-
Handshake vorneweg verarbeitet und mit jeder Serverantwort (ACK, SYC usw.) ein DIV erzeugt.
Nice to know... hilft mir aber nicht weiter.
Vielleicht entdeckt ja jemand von Euch den Bug im httpRequest:
/* =========== snip begin =========== */
91 function getAjaxData(elementId) {
92 http = false;
93 url = 'dyn_menu.php?ID='+elementId;
94
95 if (window.XMLHttpRequest) {
96 http = new XMLHttpRequest();
97 if (http.overrideMimeType) {
98 http.overrideMimeType('text/xml');
99 }
100 } else if (window.ActiveXObject) {
101 try {
102 http = new ActiveXObject("Msxml2.XMLHTTP");
103 } catch (e) {
104 try {
105 http = new ActiveXObject("Microsoft.XMLHTTP");
106 } catch (e) {}
107 }
108 }
109
110 if (!http) {
111 alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
112 return false;
113 }
114 http.open('GET', url, true);
115 http.setRequestHeader( 'Content-length', url.length );
116 http.onreadystatechange = new Function("createMenu('"+elementId+"')");
117 http.send(null);
118 }
/* =========== snip end =========== */
Vielleicht noch als Anmerkung: Ich hatte vor 'ner Zeit ein ähnliches Problem, allerdings
mit der http.open POST Methode... damals lag's am Parameter "true" - mit "fals" war das
Problem gelöst - wirkt aber im aktuellen Fall nicht.
Grüße, dicon