reinhard: javascript + firefox / safari

Hallo Leute,
ich brauche Hilfe von Experten für firefox und safari. Für eine Präsentation von Fotos habe ich eine kleine Anwendung in Javascript (JS) programmiert. Das Programm befindet sich dabei in einer externen JS-Datei, die in die HTML-Seite eingebunden ist:
<script src="skript/ini.js"></script>.
Bei der Programmierung habe ich möglichst sorgfältig darauf geachtet, daß in selfhtml immer alle Symbole für die verschiedenen Browser angezeigt werden (zumindest firefox und safari, obwohl ich nur den IE auf meinem Rechner habe). An anderen Rechnern mit firefox und safari habe ich nun leider feststellen müssen, daß die Anwendung nicht funktioniert. Es scheint so zu sein, daß die externe JS-Datei nicht geladen wird. Jedenfalls ist sie auf der Festplatte nirgends zu finden (bei Windows wird sie ja im temporären Verzeichnis abgelegt).

Kann mir jemand sagen, was da nicht stimmt?

Die Anwendung könnt Ihr besichtigen unter http://www.fotografie-plus.de, Menüpunkte "Griechenland... > Pfad Santorin". Dann bitte auf das kleine Bild klicken. Wenn eine Meldung kommt, daß Javascript aktiviert sein muß, ist der Fehler aufgetreten. Diese default-Meldung (von mir programmiert, nicht vom Rechner) sollte normalerweise nach dem Laden der Seite durch ein kleines Skript mit einem Link überschrieben werden, der ein neues Fenster mit der Anwendung öffnet. Wenn JS nicht funktioniert, bleibt die Meldung stehen.

Was tun?

Vielen Dank für Tips im voraus.
Reinhard

  1. Lieber reinhard,

    Die Anwendung könnt Ihr besichtigen unter http://www.fotografie-plus.de, Menüpunkte "Griechenland... > Pfad Santorin".

    Ein Link wäre bequemer gewesen... Außerdem ist in Deinem Frame-Monster die tatsächliche Seite keineswegs die von Dir angegebene URL, sondern diese Unterseite: http://www.fotografie-plus.de/serie_kykladen/04_Pfad/info.htm

    Also das hier sieht verdächtig aus:

    <head>  
    <title>Digitales Fotoalbum / Traumpfad</title>  
    <script type="text/javascript" language="javascript" src="skript/function_standard_js.js"></script>  
    <script src="skript/iniVar.js"></script>  
    <script src="skript/ini.js"></script>  
    </head>
    

    Findest Du den "Fehler" selbst?

    Desweiteren zeigt mir mein Firefox2.0 immer so komische Zeichen an, was daran liegt, dass Deine Dateien mit einem in UTF-8 kodierten Zeichensatz ausgelifert werden, obwohl sie in ISO-8859-1 kodiert sind... Da wäre eine Meta-Angabe zum Content-Type angebracht, wenn Du serverseitig keine Möglichkeiten/Ideen zu dieser Beseitigung hast.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Hallo Felix,

      Den umständlichen Weg über die Menüführung habe ich gewählt, da auch hier schon ein winziger Schnipsel Javascript benutzt wird. Und weder firefox oder safari haben hier ein Problem...

      Also das hier sieht verdächtig aus:
      <head>
      <title>Digitales Fotoalbum / Traumpfad</title>
      <script type="text/javascript" language="javascript" src="skript/function_standard_js.js"></script>
      <script src="skript/iniVar.js"></script>
      <script src="skript/ini.js"></script>
      </head>

      Findest Du den "Fehler" selbst?

      Leider finde ich den Fehler nicht (vielleicht die doppelte Verwendung von "javascript" in type und language??? muß das in jedem script-Tag stehen???) ... ich bilde mir ein, daß ich brav alles nach den Anweisungen von selfhtml programmiert habe. Bin aber kein Profi ... Wäre also für einen Tip dankbar ...

      Desweiteren zeigt mir mein Firefox2.0 immer so komische Zeichen an, was daran liegt, dass Deine Dateien mit einem in UTF-8 kodierten Zeichensatz ausgeliefert werden, obwohl sie in ISO-8859-1 kodiert sind...

      Das hat mich auch schon gewundert ... eigentlich sollte bei Links zu neuen Fotos ein kleiner Stern (aus den Windings) stehen. Werde sehen, was ich tun kann.

      Freue mich darauf, den Tip zu dem "Fehler" zu bekommen.
      Gruß und Dank, Reinhard

      1. Lieber reinhard,

        Leider finde ich den Fehler nicht (vielleicht die doppelte Verwendung von "javascript" in type und language???

        ...fast!

        muß das in jedem script-Tag stehen???)

        Aber HALLO!!!

        ... ich bilde mir ein, daß ich brav alles nach den Anweisungen von selfhtml programmiert habe.

        Dann hast Du nicht genau genug gelesen. Es MUSS im Script-Tag stehen, von welchem Typ das Script ist! Auch wenn mittlerweile in den gängigen Browsern von Javascript ausgegangen werden darf, so kennt der IE (glaube ich) daneben auch VB-Script. Wie auch immer, der Firefox erwartet zwingend das type-Attribut mit dem Wert "text/javascript", da er sonst den Code nicht interpretiert (vermute ich mal). Das language-Attribut kannst Du übringens getrost entsorgen - diese Browserzeiten sind definitiv vorbei.

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

  2. Hallo Reinhard,

    Kann mir jemand sagen, was da nicht stimmt?

    Du hast Fehler eingebaut :-)

    Die Anwendung könnt Ihr besichtigen unter http://www.fotografie-plus.de, Menüpunkte "Griechenland... > Pfad Santorin". Dann bitte auf das kleine Bild klicken. Wenn eine Meldung kommt, daß Javascript aktiviert sein muß, ist der Fehler aufgetreten.

    Hmm ja, die Javascript-Konsole sagt mir:

    "BildFenster is not defined"

    Javascript ist case-sensitive, d.h.

    BildFenster != Bildfenster

    Freundliche Grüße

    Vinzenz

    1. Du hast Fehler eingebaut :-)
      Hmm ja, die Javascript-Konsole sagt mir:

      "BildFenster is not defined"

      Javascript ist case-sensitive, d.h.

      BildFenster != Bildfenster

      Das ist sehr eigenartig. Aufgrund Deines Hinweises habe ich festgestellt, daß ich ein Objekt mit dem Namen "BildFenster" (<a name="BildFenster" ...>) und auch eine Array-Variable "Bildfenster" habe. Normalerweise versuche ich das zu vermeiden, ist aber durchgerutscht. Mein IE meckert aber nicht, sondern führt das Programm ordnungsgemäß aus (schließlich sind es ja in Javaskript 2 verschiedene Objekte). Hast Du die Meldung im firefox oder im safari bekommen? Solche Fehlermeldungen habe ich z.B. auch bekommen, wenn ich ein Objekt ansprechen wollte, was noch garnicht geladen war.

      Irgendwo habe ich in diesem Forum einen Eintrag gesehen, daß firefox die HTML-Datei nicht vollständig lädt. Vielleicht zündet das Ereignis "onload" bereits, obwohl die Seite noch nicht vollständig da ist und das Objekt "BildFenster" (mit F groß) noch nicht zur Verfügung steht?

      Jedenfall erst mal vielen Dank für den Hinweis. Werde das Programm überprüfen, ob sich ein Tippfehler eingeschlichen hat. Und werde die Array-Variable umbenennen.
      Gruß, Reinhard

  3. Hi,

    Die Anwendung könnt Ihr besichtigen unter http://www.fotografie-plus.de, Menüpunkte "Griechenland... > Pfad Santorin".

    die URL wäre http://www.fotografie-plus.de/serie_kykladen/01/info.htm - aber hier sehe ich nirgends Javascript. Warum Frames (und Pfadbeschreibungen)?

    freundliche Grüße
    Ingo

    1. Hallo Ingo,
      mit der von Dir ermittelten URL bekommst Du nur eine Teilseite des Frames. Daher mein Hinweis, den Menüpunkten zu folgen. Einer der Punkte heißt "Pfad Santorin", weil Du auf der Insel Santorin (Griechenland) virtuell einen Pfad mit vielen Treppen und schönen Häusern entlang gehen kannst (wenn Javaskript funktioniert ...). Keine datentechnischen Hintergedanken also ...

      Warum Frames? Weil ich 1999, als ich den Website gemacht habe, noch nichts anders konnte. Das horizontale Scrollen soll das Betrachten eines Filmstreifens von früher simulieren.
      Gruß, Reinhard

      die URL wäre http://www.fotografie-plus.de/serie_kykladen/01/info.htm - aber hier sehe ich nirgends Javascript. Warum Frames (und Pfadbeschreibungen)?

      freundliche Grüße
      Ingo

      1. Lieber reinhard,

        Warum Frames? Weil ich 1999, als ich den Website gemacht habe, noch nichts anders konnte.

        Deine Seite braucht keine Frames. Das hat sie noch nie. Wenn Du die Navigation nicht in jeder HTML-Datei neu in den Code schreiben willst, dann nimm entweder serverseitige Mechanismen, oder eben (nicht gut!) Dein Javascript. Frames waren schon immer eine problembehaftete Lösung, eine Seite im Netz aufzubauen (denke an Suchmaschinen-Treffer!!). Verzichte besser komplett auf sie!

        Das horizontale Scrollen soll das Betrachten eines Filmstreifens von früher simulieren.

        Soetwas nervt mich jedesmal tierisch!! Warum kann man eine Seite nicht vertikal scrollen lassen, so wie das bei allen Seiten, die nicht in den Anzeigebereich passen, üblich ist? Dort funktioniert nämlich mein Scrollrad auomatisch wie gewohnt! Waagerecht muss ich immer mit dem Mauszeiger an der Schiebeleiste fummeln... wie bereits geschrieben: tierisch nervig!

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.