In letzter Zeit bin ich immer wieder über Probleme mit dem IE im zusammenhang mit jQuery gestoßen. Weil ich zu den Problemen wenig nichts im Netz gefunden habe, gibt es diesen Beitrag.
Das erste Problem, was sich recht schnell lösen lässt, ist, dass der Internet Explorer zuweilen das $-Zeichen nicht mag und einen Fehler ausgibt, dass er das Element nicht kennt. Mein Lösungsvorschlag: Entweder die noConflict()-Funktion von jQuery verwenden oder, was ich besser finde, "$" einfach durch "jQuery" ersetzen.
Jetzt wird es schon etwas interessanter. Problem Nr. 2:
Der IE will in einigen Fällen Elemente, die einfach per ID angesprochen werden nicht kennen. Beispiel:
$("#loaderBox").html("test");Eine Logik konnte ich hinter dem Problem nicht erkennen, meine Lösung jedenfalls ist, vor jedes per ID ausgewählte Element den jeweiligen Elementtyp zu schreiben:
$("div#loaderBox").html("test");Und jetzt zur letzten Falle, in die wir beim IE leicht tappen können und die das Senden eines XMLHttpRequests (Ajax-Request) im Internet Explorer aller (zumindest 7 und 8) Versionen unmöglich macht und mit der netten Meldung: Das Objekt unterstützt diese Eigenschaft oder Methode nicht. (Bezieht sich auf das gerade genannte XMLHttpRequest-Objekt) quittiert wird. Das Problem ist die Stelle der Definition der jQuery Javascript-Datei - Ich hatte mein jQuery-File natürlich sauber im Head definiert. Ich zitiere selfHTML:
Nach einigen Gläsern Tee und einer Menge verbratenen Hirnzellen, offenbarte sich mir die Lösung des Problems: Das jQuery-Script im Body definieren. Ist nicht schön, aber funktioniert - Ich muss mich in dieser Angelegenheit wohl dem IE geschlagen geben..Es ist unter JavaScript-Programmierern zur Gewohnheit geworden, einen solchen Bereich [Javascript-Tag] im Kopf der HTML-Datei, also zwischen <head> und </head> zu definieren.
- selfHTML