.js: Quelltext erstellen mit externem JS?
Alfred Paris
Ich möchte Teile einer Seite dynamisch beim Laden generieren, und zwar mit einem externen JavaScript (.js). Dabei tritt aber das Problem auf, daß das Script, wenn es ausgeführt werden soll, noch nicht geladen ist, und der Browser dennoch den Rest des Dokuments lädt und dadurch alles durcheinander bringt.
Kann ich dem Browser sagen, er soll warten, bis das Script geladen ist, und dann erst weitermachen?
Danke, Alfred
Hallo Alfred,
Ich möchte Teile einer Seite dynamisch beim Laden generieren, und zwar mit einem externen JavaScript (.js). Dabei tritt aber das Problem auf, daß das Script, wenn es ausgeführt werden soll, noch nicht geladen ist, und der Browser dennoch den Rest des Dokuments lädt und dadurch alles durcheinander bringt.
Hmm, verstehe ich es richtig, dass die document.write()-Befehle in der externen js-Datei stehen? Dann solltest Du sie dort in eine Funktion packen. Innerhalb der HTML-Datei kannst Du dann erst mal zwischen <head> und </head> notieren:
<script language="JavaScript" src="datei.js">
</script>
Damit wird die js-Datei erst mal geladen. Und im Text, dort, wo der Code generiert werden soll:
<script language="JavaScript">
Schreibe();
</script>
(wobei Schreibe() die zuvor ewaehnte Funktion ist)
Ob's so klappt, weiss ich nicht, probier's mal.
Viele Gruesse
Stefan Muenz
Hi,
Ich möchte Teile einer Seite dynamisch beim Laden
generieren, und zwar mit einem externen JavaScript
(.js). Dabei tritt aber das Problem auf, daß das
Script, wenn es ausgeführt werden soll, noch nicht
geladen ist, und der Browser dennoch den Rest des
Dokuments lädt und dadurch alles durcheinander
bringt.
Wenn ich das Problem richtig verstehe, dann ist das
ein aehnliches Problem das ich bei meiner Suchmaschine mit dem Opera auch habe, siehe dort:
<t00455.htm#a1749> (vom 18.9.98,
12:24 Uhr, falls der link spaeter nicht mehr richtig ist).
Hmm, verstehe ich es richtig, dass die
document.write()-Befehle in der externen js-Datei
stehen? Dann solltest Du sie dort in eine Funktion
packen.
...
Damit wird die js-Datei erst mal geladen. Und im
Text, dort, wo der Code generiert werden soll:
...
Ob's so klappt, weiss ich nicht, probier's mal.
Wenn nur Text durch die .js erzeugt wird, dann sollte
das mit der Kapselung in einer Funktion eigentlich reichen, dass zuerst die .js geladen werden _muss_,
bevor die in der HTML ausgefuehrt wird.
Aber was ist bei mehreren .js-Dateien. Herscht dann
Anarchie oder werden die genau in der Folge des
Auftreten im Code aufgerufen, brav hintereinander ?
Und wie ist das wenn in einer .js-Datei eine komplett
neue Seite generiert wird, die ihrerseits wieder eine
.js-Datei laed (oder besser laden sollte, siehe link
oben) ?
Hier sollte wohl endlich das W3C oder aehnlich
Organisationen und Vereinigungen dafuer sorgen, dass
die Browser kompatibler zueinander werden.
Und daß sich Browser wie Opera wenigstens an
Grundlagen von JS halten. (Browser die JS kennen,
sollten eigentlich noscript-Tags ignorieren, dafür
wurde der naemlich geschafen.)
Warten wir auf bessere Browser bei der IE-Konkurenz,
ansonsten (muss man leider sagen) hoffe ich, dass nur
noch einer uebrig bleibt. Ich bin es auf jeden Fall
leid, staendig auf alle moeglichen Browser-
Spezialitaeten Ruecksicht zu nehmen.
Hartmut