Zugriff auf Variablen in Externer *.js-Datei??
ZB
- javascript
0 Andreas Berkl0 ZB0 Andreas Berkl0 ZB
Ich hab 2 Probleme:
1.
Ich habe in einer HTML-Datei ganz normal eine js-Datei eingebunden (<script src="funktion.js"></script>).
Im body habe ich ein Script, dass einen Text, der in Variablen in der externen js-Datei definiert ist schreibt.
Der Netscape schreibt einfach gar nichts, und sagt in der Konsole "texxt is not defined".
Der IE schreibt die Variabeln problemlos.
2.
Der o.g. "Text" besteht aus Links, auf eine Funktion, wobei hier der übergabewert an die Funktion durch die Werte der Variablen gesteuert wird.
Beispiel:
<a href="javascript:anzeigen(' + text[2] +')">Den 3. Text sehen</a><br>
Die Funktion "anzeigen" (steht auch in der externen js-Datei) öffnet anschliessend ein neues Fenster, in das dann der Text (text[2]) geschrieben wird.
Nur der IE sagt bei einem Klick auf den Link "text[0] ist undefiniert" (hab es mit normalen Variablen und Arrays probiert).
Mit dem Netscape kann ich es nicht probieren, da er die Kinks gar nicht erst schreibt (siehe 1.)
Also der Browser "vergisst", dass die Variable (text[2]) bereits weiter oben in der externen js-Datei steht und bereits eingelesen wurde.
Hallo,
Ich hab 2 Probleme:
Ich habe in einer HTML-Datei ganz normal eine js-Datei eingebunden (<script src="funktion.js"></script>).
Im body habe ich ein Script, dass einen Text, der in Variablen in der externen js-Datei definiert ist schreibt.
Der Netscape schreibt einfach gar nichts, und sagt in der Konsole "texxt is not defined".
Der IE schreibt die Variabeln problemlos.
Welcher Netscape?
Vielleicht hilft Dir Folgendes:
Die Testseite:
<!-- cut here -->
<HTML>
<HEAD>
<TITLE>Ausgabe aus funktion.js</TITLE>
<SCRIPT LANGUAGE="JavaScript" SRC="funktion.js">
</SCRIPT>
</HEAD>
<BODY>
Ausgabe aus funktion.js:
<SCRIPT LANGUAGE="JavaScript">
<!-- start hide
document.write(text);
// end hide -->
</SCRIPT>
</BODY>
</HTML>
<!-- cut here -->
und die funktion.js:
<!-- cut here -->
text = "blabla";
<!-- cut here -->
Funktioniert bei mir in NS 4.78, Mozilla (also wohl auch in NS 6) und im MSIE 5.5
Der o.g. "Text" besteht aus Links, auf eine Funktion, wobei hier der übergabewert an die Funktion durch die Werte der Variablen gesteuert wird.
Beispiel:
<a href="javascript:anzeigen(' + text[2] +')">Den 3. Text sehen</a><br>
Die Funktion "anzeigen" (steht auch in der externen js-Datei) öffnet anschliessend ein neues Fenster, in das dann der Text (text[2]) geschrieben wird.
Nur der IE sagt bei einem Klick auf den Link "text[0] ist undefiniert" (hab es mit normalen Variablen und Arrays probiert).
Mit dem Netscape kann ich es nicht probieren, da er die Kinks gar nicht erst schreibt (siehe 1.)
Also der Browser "vergisst", dass die Variable (text[2]) bereits weiter oben in der externen js-Datei steht und bereits eingelesen wurde.
Hm, das klingt etwas kryptisch... Laß doch mal etwas mehr von Deinem Code sehen, falls es mit dem Beispiel oben nicht klappt.
Gruß, Andreas
Danke erstmal für deine Antwort.
1. es war bei beiden Nerscape das gleiche Problem.
Ich hab weiter geschaut, und gemerkt, dass das eigentliche Problem ist, dass IE (5.5) / Netscape (4.7 und 6.1) aus einem Script, dass im Body steht NICHT auf Variablen die in einer Externen js-Datei stehen zugreifen können??? Warum aber???
Hallo,
Danke erstmal für deine Antwort.
Keine Ursache!
- es war bei beiden Nerscape das gleiche Problem.
Ich hab weiter geschaut, und gemerkt, dass das eigentliche Problem ist, dass IE (5.5) / Netscape (4.7 und 6.1) aus einem Script, dass im Body steht NICHT auf Variablen die in einer Externen js-Datei stehen zugreifen können??? Warum aber???
Hast Du meinen Vorschlag ausprobiert? Oder habe ich den Kern Deiner Frage nicht verstanden? Bei mir macht´s jedenfalls keine Probleme... Ist doch eigentlich "bread and butter" für JavaScript.
Testest Du lokal auf einem Rechner oder auf einem Server? Da könnte Groß/Kleinschreibung bei den Dateinamen bzw. Links noch eine Rolle spielen...
Gruß, Andreas
Danke, aber das Problem hat sich gelöst.
Ich hatte nämlich in der HTML-Datei (im Body) eine Funktion, die mit write() arbeitet.
Diese Funktion wurde immer "onLoad" aufgerufen und was macht document.write normalerweise???
Es löscht den "alten" Quelltext vollständig.
Nachdem also mit write() etwas in die datei geschrieben wurde, wurde (logischerweise) derrest des quelltextes gelöscht, also auch der "link" auf die externe JS Datei.