Problem mit JavaScript in separaten Dateien
Heidelberg
Problem mit JavaScript in separaten Dateien:
Woran liegt es ? Gibt es Abhilfe ?
JavaScript-Funktionen, die in einer separaten Datei gespeichert sind, vertragen sich nicht mit JavaScript-Funktionen, die im Head definiert sind.
Entweder die eine oder die andere Funktion ist zu gebrauchen, aber nicht beide zusammen.
Hi,
Problem mit JavaScript in separaten Dateien:
Woran liegt es ? Gibt es Abhilfe ?
vergiß .js-Dateien! Es gibt zu viele Probleme damit. Funktionen lassen sich nicht aus einem anderen Frame aufrufen, oder sogar nicht mal aus dem selben Frame, die wenigsten Browser verstehen es, jeder reagiert anders... und ein paar Effekte hast Du ja auch schon genannt. Vor langer Zeit habe ich mich mal mit .js-Dateien beschäftigt, aber es lohnt sich einfach nicht. Nebenbei bemerkt wird (wurde?) das File jedes Mal(!) nachgeladen, auch wenn man die selbe Datei in einer anderen Seite verwendet hatte. Kein Caching! Blöd :-(
Sorry, aber Alternativen (bis auf CGI / SSI) kann ich Dir auch nicht anbieten. Externe JavaScripts sind nun mal ein Flop, obwohl sie sinnvoll wären!
Cheatah
Hallo,
ich hatte auch einmal Probleme mit externen JS. Das mit der Endung .js kannst du am besten ganz schnell vergessen (vertragen einige Server nicht), nenne die Dateien .txt. Das Problem mit den Functionen habe ich so gelößt: Du mußt zwei Scriptbereich im Body-Tag devinieren. Im ersten steht der "normale" JS und im zweiten der Aufruf der Externen Datei. Im zweiten Bereich darf sonst kein weiterer JS stehen.
Ich hoffe das es bei dir auch klappt.
cu cu
Thomas
Problem mit JavaScript in separaten Dateien:
Woran liegt es ? Gibt es Abhilfe ?JavaScript-Funktionen, die in einer separaten Datei gespeichert sind, vertragen sich nicht mit JavaScript-Funktionen, die im Head definiert sind.
Entweder die eine oder die andere Funktion ist zu gebrauchen, aber nicht beide zusammen.
Hallo,
bisher konnte ich bei Problemen mit externen JS-Files die tatsächliche Ursache nicht eruieren. Wenn Fehler auftraten, meist ein Crash des Browsers, lief der gleiche Code, in der Datei definiert, meist fehlerfrei. Fest steht jedenfalls, daß einige Scripts funktionieren, andere nicht. Selbst das Einbinden mehrerer Dateien funktioniert durchaus.
Ein Beispiel:
<html>
<head>
...
<script language="JavaScript" src="js/default.js"></script>
<script language="JavaScript" src="js/menue.js"></script>
<script language="JavaScript" src="js/cookie.js"></script>
<script language="JavaScript">
... JavaScript-Code ...
</script>
</head>
<frameset>
...
</frameset>
</html>
funktioniert in unserem Intranet (NN4, IIS) seit mehreren Monaten störungsfrei.
Auch innerhalb von Frames kann lokaler und "globaler" gemischt Code verwendet werden. Die Referenz aus einem Frame heraus auf eine globale Funktion kann z.B. mittels top.globaleFunktion() oder besser parent.globaleFunktion() hergestellt werden. Mit Variablen funkioniert das übrigens genauso. Wird im Frame der <base target=...> Tag verwendet, geht die Referenzierung allerdings nicht mehr.
Auf diese Weise lassen sich auf der Hauptseite (die Datei mit der Definition des frameset) globale Funktionen und Variablen bündeln, die von allen Frames benötigt werden. Andererseits wird dieser zentrale Code auch nur einmal geladen, was insgesamt der Performance zugute kommt.
Meines Wissens gibt es - ohne den Einsatz von Server Side Includes (SSI) - keine andere Möglichkeit, mehrfach verwendeten Code zentral zu pflegen und wiederzuverwenden, was bei umfangreichen Sites unter dem Gesichtspunkts des Pflegeaufwands durchaus relevant ist (der Betriebswirt nennt das "total cost of ownership").
Bis demnähx
Jörg
Problem mit JavaScript in separaten Dateien:
Woran liegt es ? Gibt es Abhilfe ?JavaScript-Funktionen, die in einer separaten Datei gespeichert sind, vertragen sich nicht mit JavaScript-Funktionen, die im Head definiert sind.
Entweder die eine oder die andere Funktion ist zu gebrauchen, aber nicht beide zusammen.
Hallo,
der JavaScript Guide (Netscape) gibt Auskunft über die Rahmenbedingungen: http://developer.netscape.com/docs/manuals/communicator/jsguide4/getstart.htm#1009589
Viel Erfolg
Jörg