Angel: Probleme mit separater JS-Datei

Hallo Fachleute,

Ich verwende in mehreren HTML-Dateien eine JS-Funktion, die mir eine Navi-Leiste an den Kopf der Dateien schreibt. Diese Funktion habe ich in einer extra JS-Datei definiert, was mir ein nerviges Problem beschert:

Wenn ich die HTML-Dateien das erste Mal aufrufe ist alles in Ordnung und sieht so gut aus wie ich mir das vorstelle. Wenn ich die Datei aber mit 'Reload' nochmal lade oder aus einer anderen Datei ueber den 'Back' Button wieder hinkomme, kennt der Browser die JS-Funktion nicht mehr, was einen laestigen JS-Fehler produziert :-(

Interessant ist, dass der Quellcode der HTML-Datei voellig richtig aussieht (das heisst, die Navileiste steht drin) aber der JS-Fehler erscheint trotzdem (und die Leiste nicht).

Ich vermute, dass das daran liegt, dass der Browser zwar die HTML-Datei im Cache behaelt, die JS-Datei aber wegschmeisst. Wenn ich die Funktion naemlich im Header der HTML-Datei definiere, gibt's kein Problem.

Hat jemand eine Idee (oder vielleicht sogar schon eine Loesung) fuer mein nerviges Problem?

Schon mal Danke :-)
Angel

  1. Wenn ich die HTML-Dateien das erste Mal aufrufe ist alles in Ordnung und sieht so gut aus wie ich mir das vorstelle. Wenn ich die Datei aber mit 'Reload' nochmal lade oder aus einer anderen Datei ueber den 'Back' Button wieder hinkomme, kennt der Browser die JS-Funktion nicht mehr, was einen laestigen JS-Fehler produziert :-(

    Hallo Angel,

    hast du dieses Problem nur offline oder auch online?

    Bei meiner Version vom Navigator tritt dieses Problem gelegentlich auf. Offline Probleme und wenn ich das Ganze online kontrolliere klappt alles. Warum das aber so ist, weiß ich auch nicht.

    A.H.

    1. Das hier beschriebene Problem kenne ich nur mit meinem NS 3.0x (Offlline). Mit den

      Online, bzw. mit den 4.x Versionen tritt es bei mir nicht auf. Vielleicht wäre es noch interessant, wenn Du mal sagst welchen Browser(Version) Du benutztst.

      Wenn ich die HTML-Dateien das erste Mal aufrufe ist alles in Ordnung und sieht so gut aus wie ich mir das vorstelle. Wenn ich die Datei aber mit 'Reload' nochmal lade oder aus einer anderen Datei ueber den 'Back' Button wieder hinkomme, kennt der Browser die JS-Funktion nicht mehr, was einen laestigen JS-Fehler produziert :-(

      Hallo Angel,

      hast du dieses Problem nur offline oder auch online?

      Bei meiner Version vom Navigator tritt dieses Problem gelegentlich auf. Offline Probleme und wenn ich das Ganze online kontrolliere klappt alles. Warum das aber so ist, weiß ich auch nicht.

      Viele Grüße, Günter

      1. Das hier beschriebene Problem kenne ich nur mit meinem NS 3.0x (Offlline). Mit den

        Online, bzw. mit den 4.x Versionen tritt es bei mir nicht auf. Vielleicht wäre es noch interessant, wenn Du mal sagst welchen Browser(Version) Du benutztst.

        Viele Grüße, Günter

        Version 4.06 und nur im Zusammenhang mit Layers, gemerkt habe ich es, als ich eine Testseite zusammenstellte, um die Frage danach hier zu posten. Es hatte sich dann erledigt. :-)

        A.H.

    2. hast du dieses Problem nur offline oder auch online?

      Bisher nur offline.
      Auf die Idee, dass das online besser klappen koennte bin ich noch gar nicht gekommen ;-)

      Ich habe dieses Problem uebrigens sowohl mit NS 4.05 und dem IE 3.02 unter NT. Beide offline.

      Danke fuer den Tip, ich werd's mal online probieren.

      Angel

  2. Hallo Fachleute,

    Hallo Fachleut ;-)

    Interessant ist, dass der Quellcode der HTML-Datei voellig richtig aussieht (das heisst, die Navileiste steht drin) aber der JS-Fehler erscheint trotzdem (und die Leiste nicht).

    Klingt, wie wenn Du den Netscape Navigator verwendest, der hat an dieser Stelle naemlich einen Bug.

    Mit 'View Source' praesentiert der NS einen schoenen Syntax-gehighlighteten Code, und zwar von der Datei, die er *darstellt*, nicht von der, die er runtergeladen hat. Sobald ein document.write() auftaucht, wird der JS-Code durch seinen Output ersetzt, und dies ist es, was Du dann siehst (eben mit Deiner Navileiste). Du erkennst solche Seiten daran, dass in der Titelleiste des View-Source-Fensters nicht die urspruengliche URL
    http://www.domain.com/directory/index.html steht, sondern
    wysiwyg://Framename.LaufendeNummer/http://www.domain.com/directory/index.html.
    (Framename nur wenn innerhalb eines Framesets)
    So weit, so gut, das war Dir sichr klar.

    Jetzt der Bug: Solche wysiwyg:// Source-Codes werden vom Netsi nicht aktualisiert. Auch wenn Du Shift+Reload drueckst, einen Handstand machst oder Deinen Hamster erschlaegst, um NS ein Opfer zu erbringen. Er zeigt immer den Code an, den er beim ersten Aufruf der Datei per JS erzeugt hat, obwohl die Darstellung im Browserfenster korrekt ist. Hier musst Du mindestens Netscape beenden und neu starten, aber ein zusaetzliches Cache-Cleanup kann nicht schaden. Nur den Cache zu leeren (Disk+Memory) reicht jedenfalls nicht aus.

    Ich vermute, dass das daran liegt, dass der Browser zwar die HTML-Datei im Cache behaelt, die JS-Datei aber wegschmeisst. Wenn ich die Funktion naemlich im Header der HTML-Datei definiere, gibt's kein Problem.

    Selbst wenn er die JS-Datei nicht cacht, muesste er sie doch wenigstens erneut downloaden, oder?

    Hat jemand eine Idee (oder vielleicht sogar schon eine Loesung) fuer mein nerviges Problem?

    Sorry, leider nicht.

    Calocybe

    1. Interessant ist, dass der Quellcode der HTML-Datei voellig richtig aussieht (das heisst, die Navileiste steht drin) aber der JS-Fehler erscheint trotzdem (und die Leiste nicht).

      Klingt, wie wenn Du den Netscape Navigator verwendest, der hat an dieser Stelle naemlich einen Bug.

      Ich hatte das mit NS 4.05 und IE 3.02 probiert. Das Ergebnis war bei beiden gleich unschoen - nur die Fehlerboxen sahen verschieden aus ...

      Jetzt der Bug: Solche wysiwyg:// Source-Codes werden vom Netsi nicht aktualisiert. Auch wenn Du Shift+Reload drueckst, einen Handstand machst oder Deinen Hamster erschlaegst, um NS ein Opfer zu erbringen. Er zeigt immer den Code an, den er beim ersten Aufruf der Datei per JS erzeugt hat, obwohl die Darstellung im Browserfenster korrekt ist. Hier musst Du mindestens Netscape beenden und neu starten, aber ein zusaetzliches Cache-Cleanup kann nicht schaden. Nur den Cache zu leeren (Disk+Memory) reicht jedenfalls nicht aus.

      :-(
      Na, dann kann ich ja lange den Quellcode gegenchecken ...

      Selbst wenn er die JS-Datei nicht cacht, muesste er sie doch wenigstens erneut downloaden, oder?

      Haette ich auch vermutet.
      Ich habe das bisher nur offline getestet.
      Anja Hoffman meinte, online traete das Problem nicht auf. Mal sehen ...

      » Sorry leider nicht.

      Mein Pech ;-)
      Immerhin hab ich schon wieder was dazu gelernt. Wer weiss, wofuer's gut ist.

      Angel