Externe Javascripts funktionieren bei mir am zuverlässigsten, wenn im Script-Tag der HTML-Seite keine type-Angabe, also keine MIME-Vorgabe, eingetragen wird, denn sonst stürzt Netscape 3 sowohl unter Windows wie auch MacOS regelmäßig ab. Auf dem Server muss als MIME-Typ "application/x-javascript" eingetragen sein.
Ein Problem habe ich aber doch:
In einer externen JS-Datei ist eine Funktion definiert. Diese wird von einer anderen Funktion aufgerufen, die sich in einem weiteren Script direkt auf der HTML-Seite befindet. Dieser zweite Script befindet sich in einem Script-Tag unterhalb des Script-Tags, das die Einbindung der externen js-Datei festlegt. Die Funktion im internen Script wird vom onLoad()-Event aufgerufen. Hierbei kommt es unter MSIE gelegentlich zur Fehlermeldung, dass die Funktion, die in der externen js-Datei enthalten ist, nicht definiert sei. Dies passiert vor allem, wenn der Browser-Cache vorher leer ist, also gehe ich von einem Timing-Problem aus.
Eigentlich stelle ich mir den Ablauf ja so vor: Der Browser liest den HTML-Code von oben nach unten ein. Scripts werden hierbei ebenfalls eingelesen, wobei Funktionen definiert und direkte Instruktionen ausgeführt werden. Taucht hierbei ein Script-Tag mit einer Referenz zu einer externen js-Datei auf, so wird diese eingelesen und bearbeitet, vor es mit dem nächsten Tag weitergeht. Der onLoad-Handler wird aufgerufen, wenn die gesamte HTML-Seite geladen ist. Zu diesem Zeitpunkt müssten auch alle externen Javascripts geladen sein. Offenbar trifft das aber nicht immer zu. Was ist zu tun?