Max: 2 externe Javascriptdateien in ein Script einbinden

Hallo.
Ich habe das Problem, dass sich ein von mir erstelltes Script aufhängt. Es handelt sich um einen Kalender. Wenn man in diesem Kalender z.B. auf den Monat Januar springen möchte, klickt man einfach auf den Link mit Januar. Daraufhin wird der Funktion der Wert 0 (für Januar) gegeben und das Dokument neu geladen.

Das hat bisher auch gut geklappt. Allerdings musste ich eine weitere Javascript-Datei einbinden. Ich habe das folgendermaßen gemacht:

<script src="Kalender.js" type="text/javascript"></script>
<script src="Untertitel.js" type="text/javascript"></script>

Ich habe es allerdings nur geraten - in einem simplen Bsp. klappt diese Methode auch, nur weiß ich nicht, ob das so "formgerecht" ist.

Weshalb ich frage? Seit ich die 2. JS-Datei eingebunden habe und etwas geändert habe, hängt sich mein Script auf! Man klickt z.B. auf "Januar", der Januar öffnet sich, dann klickt man auf "August" und es erscheint nur ein weißer Bildschirm.
Nach einem Neustart des kompletten Browsers und allem drumherum erscheint noch nicht einmal die Startseite des Kalenders - nur eine Meldung "Zeile 17, Zeichen1: Objekt erwartet". Ich schätze, dass ich die JS-Dateien falsch eingebunden habe und er deshalb die Funktion nicht mehr findet.

Weiß jemand wie ich das Problem beheben könnte? Sind da vielleicht andere Fehler drin, die ich nicht sehe?

Die Links zu dem ganzen Zeug ( ;) ) sind:
Kalender: http://www.mastershrimp.com/kalender/Kalender.html
JS-Datei 1 (Hauptdatei): http://www.mastershrimp.com/kalender/Kalender.js
JS-Datei 2 (Nebendatei): http://www.mastershrimp.com/kalender/Untertitel.js
Css-Datei: http://www.mastershrimp.com/kalender/Kalender.css

MfG

Max

Vielen Dank!

  1. Hallo,

    die Syntax zum Einbinden von zwei JS-Dateien ist korrekt; vermutlicher Grund für Dein Problem: Irgendwas (Funktion, Variable...) hat in beiden Dateien den gleichen Namen, das kollidiert natürlich. Abhilfe: Problemstelle finden, Namen ändern.

    Grüße,

    Utz

    1. Die JS-Datei enthält nur 12 Variablen, die sonst nirgendswo mehr vorkommen sollten. Da das aber das letzte war, was ich geändert habe, kann es sein, dass der Fehler dort versteckt liegt. Also kann eine Kollision nicht die Ursache sein.

      Ich finde den Fehler einfach nicht! :(

  2. hi,
    also in deiner kalender.js greifst du auf die variable UntertitelJanuar
    zu. doch wird die datei untertitel.js erst nach der kalender.js eingebunden
    und ist somit zur laufzeit noch nicht bekannt.
    --
    also einfach die reihenfolge ändern und schon
    solltes klappen...

    mfg
    comunicout

    --
    fütter mein ego !
    welcome to electro-smog therapy
    1. »»doch wird die datei untertitel.js erst nach der kalender.js eingebunden

      Wieso? Wo steht das? Wenn du die Einbindungs-Reihenfolge in der Kalender.html meinst - die habe ich jetzt geändert.
      Sieht so aus:

      <script src="Untertitel.js" type="text/javascript"></script>
      <script src="Kalender.js" type="text/javascript"></script>

      Doch es klappt immer noch nicht....

      Zuletzt habe ich diesen Mehrdimensionalen Array eingefügt - da ich das zum ersten Mal gemacht habe, kanns sein, dass da ein Fehler ist - nur den finde ich irgendwie nicht.
      Wenn du Zeit/Lust hast, könntest du dir diesen Teil vielleicht ansehen? Da könnte gut ein Fehler sein.
      Vielen Dank schonmal!

      MfG

      Max

  3. Hi,

    <script src="Kalender.js" type="text/javascript"></script>
    <script src="Untertitel.js" type="text/javascript"></script>

    Hm. Ich weiß nicht, ob das erlaubt ist, aber ich würde auf Variablennamen wie
    var UntertitelMärz
    lieber verzichten - ich würde keine Umlaute benutzen.

    Noch heftiger wird es hier:
      var UntertitelArray = new Array(UntertitelJanuar[i],UntertitelFebruar[i],UntertitelMärz[i], //...
    bzw. hier:
      var UntertitelArray = new Array(UntertitelJanuar,UntertitelFebruar,UntertitelMärz, //...
    wo der Umlaut als HTML-Entity kodiert ist.

    Mach doch einfach Maerz draus.
    Ich komm doch auch schon seit vielen Jahren ohne ä im Namen aus, warum sollte es diese Javascript-Variable nicht auch? ;-)

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Habe jetzt überall den Buchstaben "ä" in "ä" geändert. Hat aber leider immer noch nichts gebracht.
      :(

      Da muss irgendetwas mit der ganzen Funktion falsch sein, da die für den Fehler verantwortliche Zeile folgendes enthält:

      KalenderGenerate(aktMonat);

      Also muss da was falsch sein, oder?

      1. Hi,

        Habe jetzt überall den Buchstaben "ä" in "ä" geändert. Hat aber leider immer noch nichts gebracht.

        Warum? Hab ich gesagt, daß Du das tun sollst?
        Und wenn nein, warum hast Du nicht das getan, was ich vorgeschlagen habe?

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. Hi,

          Habe jetzt überall den Buchstaben "ä" in "ä" geändert. Hat aber leider immer noch nichts gebracht.

          Warum? Hab ich gesagt, daß Du das tun sollst?

          Nein, schon klar. Ich dachte nur, dass ich alles vereinheitlichen sollte...Aber das andere POsting von dir macht Sinn. JS könnte wirklich das ";" falsch verstehen. Wie gesagt, ich änder das mal

          Danke schonmal

      2. Hallo,

        Habe jetzt überall den Buchstaben "ä" in "ä" geändert. Hat aber leider immer noch nichts gebracht.

        Klar ändert das was - ein Semikolon schließt eine JavaScript-Anweisung ab. Das war aber halt nicht das, was Du erreichen wolltest.

        Grüße,

        Utz

        1. Hi,

          Habe jetzt überall den Buchstaben "ä" in "ä" geändert. Hat aber leider immer noch nichts gebracht.
          Klar ändert das was - ein Semikolon schließt eine JavaScript-Anweisung ab. Das war aber halt nicht das, was Du erreichen wolltest.

          Ich bin mir nicht sicher - was kommt beim Javascript-Interpreter an?
          Die Zeichenfolge & a u m l ;
          oder das entsprechende Unicode-Zeichen?

          Wenn es die Zeichenfolge wäre, wäre schon der &-Operator vermutlich nicht das, was gemeint war...

          Und wenn es das Unicode-Zeichen wäre: Selfhtml meint, daß Umlaute nicht erlaubt sind...
          Netscapes Javascript Guide meint, daß diese Zeichen ab Javascript 1.5 erlaubt sind...

          cu,
          Andreas

          --
          Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
          http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
          1. So. Bin wieder da. Musste leider kurz weg....

            Was soll ich jetzt bezüglich der Umlaute machen? Alle in "ae" umwandeln?

            Das hat aber vorher auch mit ä geklappt.

            Naja, ich werde das mal ändern und hier das Ergebnis reinposten.
            Hoffentlich liest dieses Posting überhaupt noch jemand...

  4. Hi,

    Nach einem Neustart des kompletten Browsers und allem drumherum erscheint noch nicht einmal die Startseite des Kalenders - nur eine Meldung "Zeile 17, Zeichen1: Objekt erwartet". Ich schätze, dass ich die JS-Dateien falsch eingebunden habe und er deshalb die Funktion nicht mehr findet.

    Klick doch in dem Fenster mit der Fehlermeldung mal auf "zurück" bis Du beim ersten Fehler bist (mein IE findet 3) und verbessere den.
    Dann wieder probieren usw.
    Schau nach Tippfehlern z.B. funtion oder so.
    Schau ob alle ; " { } ( ) usw. richtig sitzen.

    Grüße,

    Ronny

  5. Vielen, vielen Dank für die Lösung!
    Wäre ich nie drauf gekommen!

    MfG

    Max