Struppi: Reihenfolge beim Laden bzw. Ausführen von externen .js-Dateien

Beitrag lesen

Diese werden dann folgendermaßen in den HTML-Dokumenten eingebunden:

Immer:

<script type="text/javascript" src="foo.js"></script>

Je nach Bedarf:

<script type="text/javascript" src="bar.js"></script>

bzw.

<script type="text/javascript" src="baz.js"></script>

Und jetzt treten - zumindest im IE6 [*] - Probleme auf:


Zeile:   11
Zeichen: 1
Fehler:  'foo' ist undefiniert
Code:    0

Der Fehler weist (in der für den IE6 typischen Klarheit) auf die Zeile in der Datei "bar.js" hin, in der folgendes steht:


foo.bar = {

Ich gehe also davon aus, dass der IE6 die Datei "bar.js" geladen hat und ausführt, bevor er die Datei "foo.js" geladen und ausgeführt hat. In dem Fall existiert das Objekt "foo" natürlich noch nicht.

Bist du sicher? soweit ich das in Erinnerung habe, sollte es so keine Probleme geben. Allerdings sind die Fehlermeldungen im IE ja leider nicht immer zielführend, diese Fehlermeldung tritt auch auf, wenn die JS Dateien eine falsche Zeichenkodierug verwenden, d.h. eine vom Hauptdokument unterschiedliche.

Im Firefox scheint die Reihenfolge des Ladens und Ausführens diejenige zu sein, in der die Dateien auch im HTML-Dokument notiert sind - im IE6 offenbar nicht immer zwangsläufig.

Das klingt zumindest so, als ob das Problem eben nicht daran liegt.

Struppi.