Verständnisfrage - JS-Verhalten IE7 vs. FF3
Das Problem das ich hatte, war, dass bei einem AJAX-Script auf meiner HP (das ein SELECT-Feld dynamisch aus MySQL mit Einträge füttert) war ein window.onLoad - Aufruf dabei.
Dieser bewirkte, dass beim Laden der Seite der erste Eintrag im SELECT-Feld angezeigt wurde.
Der Witz ist nun, dass erst NACH diesem Window.onLoad - Aufruf im Code das Element mit dem SELECT-Feld erstellt wurde.
Für FF3 war das kein Problem.
IE7 aber machte Probleme, weil er sagte (und das auch zurecht, oder?), dass das Element (noch) gar nicht existieren würde.
Seltsamerweise hatte er dieses Problem nur, wenn die Seite ein weiteres Mal innerhalb einer Session aufgerufen wurde.
Wenn ich den Cache manuell geleert hatte und die Seite wieder aufgerufen habe, hat er es mir korrekt dargestellt und keine Fehlermeldung gebracht.
Nur wenn ich dann z.B. eine weitere Seite innerhalb der HP geöffnet habe und dann wieder auf den Navi-Punkt mit dem AJAX-Script geklickt habe, konnte er das Element wieder nicht mehr finden.
Ich mein, ich hab die Anweisung natürlich jetzt einfach NACH der Erstellung des Elements eingefügt, klar - aber ich verstehs nicht, warum FF3 da einfach drüber hinweg geht... und was das Ganze mit dem Cache zu tun hat.
Vielleicht kann mir das ja der eine oder andere rel. plausibel erklären. Will ja nicht dumm sterben.
Danke.
Dieser bewirkte, dass beim Laden der Seite der erste Eintrag im SELECT-Feld angezeigt wurde.
Der Witz ist nun, dass erst NACH diesem Window.onLoad - Aufruf im Code das Element mit dem SELECT-Feld erstellt wurde.
Für FF3 war das kein Problem.
IE7 aber machte Probleme, weil er sagte (und das auch zurecht, oder?), dass das Element (noch) gar nicht existieren würde.
Seltsamerweise hatte er dieses Problem nur, wenn die Seite ein weiteres Mal innerhalb einer Session aufgerufen wurde.
Wenn ich den Cache manuell geleert hatte und die Seite wieder aufgerufen habe, hat er es mir korrekt dargestellt und keine Fehlermeldung gebracht.
Nur wenn ich dann z.B. eine weitere Seite innerhalb der HP geöffnet habe und dann wieder auf den Navi-Punkt mit dem AJAX-Script geklickt habe, konnte er das Element wieder nicht mehr finden.
Ich mein, ich hab die Anweisung natürlich jetzt einfach NACH der Erstellung des Elements eingefügt, klar - aber ich verstehs nicht, warum FF3 da einfach drüber hinweg geht... und was das Ganze mit dem Cache zu tun hat.
Vielleicht kann mir das ja der eine oder andere rel. plausibel erklären. Will ja nicht dumm sterben.
Danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 124691
Url: https://administrator.de/contentid/124691
Ausgedruckt am: 26.11.2024 um 14:11 Uhr
1 Kommentar
Hallo Dawson,
sorry, aber aus dem erstem Satz kann ich mir kaum einen Sinn zusammen basteln, der ist etwas unglücklich formuliert ;)
Ähm... ein Problem mit dem "onload", ,ja ?
Ich lass mal einfach mein "gefährliches Halbwissen" freien lauf.
So wie ich das erinnere und beim lesen verstehe, tritt das "onload"-Event in kraft, nachdem das Element geladen wurde !
Also müsste eine Funktion die mit "window.onload" aufgerufen wird, erst nach dem vollständigem laden des Fensters ausgeführt werden. Was heisst das der Firefox sich richtig verhält und der Internet Explorer mal wieder derjenige ist der aus der Reihe tanzt.
Und die Frage zum Cache... __ist nur son Gedanke__:
Der die Dauer des Schreibvorganges in den Cache reich vielleicht um eine Verzögerung zwischen Seite laden und Javascript ausführen zu erzeugen, so das in diesem Fall das Javascript erst nach dem Laden der Seite ausgeführt wird - zu einem Zeitpunkt zu dem die entsprechenden Elemente schon existieren.
Client-Side Javascript onload (docs.sun.com)
SelfHTML - Javascript - onload (de.selfhtml.org)
~Arano
sorry, aber aus dem erstem Satz kann ich mir kaum einen Sinn zusammen basteln, der ist etwas unglücklich formuliert ;)
Ähm... ein Problem mit dem "onload", ,ja ?
Ich lass mal einfach mein "gefährliches Halbwissen" freien lauf.
So wie ich das erinnere und beim lesen verstehe, tritt das "onload"-Event in kraft, nachdem das Element geladen wurde !
Also müsste eine Funktion die mit "window.onload" aufgerufen wird, erst nach dem vollständigem laden des Fensters ausgeführt werden. Was heisst das der Firefox sich richtig verhält und der Internet Explorer mal wieder derjenige ist der aus der Reihe tanzt.
Und die Frage zum Cache... __ist nur son Gedanke__:
Der die Dauer des Schreibvorganges in den Cache reich vielleicht um eine Verzögerung zwischen Seite laden und Javascript ausführen zu erzeugen, so das in diesem Fall das Javascript erst nach dem Laden der Seite ausgeführt wird - zu einem Zeitpunkt zu dem die entsprechenden Elemente schon existieren.
Client-Side Javascript onload (docs.sun.com)
SelfHTML - Javascript - onload (de.selfhtml.org)
~Arano