Achim: Java im Frameset möglich?

Ich habe folgendes vor:
Auf meiner Homepage gibt es einen Terminkalender (einfache Tabelle auf 12 Seiten). Es nun immer der aktuelle Monat geöffnet werden.

Die Verzeichnisstrucktur sieht so folgendermaßen aus:
Jeder Monat hat ein ein eigenes Verzeichnis das von der Datei wo der Frameset drin liegt z.B. so aus sieht: data/03/index.htm
(die 03 wäre der März)

Mein Frameset sieht z.Z. noch so aus:

<frameset rows="40,60%,*">
  <frame src="data/auswahl.htm" name="Auswahl" target="Termine">
  <frame src="data/07/index1.htm" name="Termine" target="_self">
  <frame src="data/blank.htm" name="info" target="_self">
</frameset>
(hab das einwenig gekürzt damit das hier hin passt...)

Bisher ist es so das ich monatlich die Monatszahl des mittleren Frames austausche. Das ist mir was lästig geworden weil es ja autom. gehen muß.

Ich hab auch schon einwenig mit getmonth experimentiert aber ohne Erfolg.

Mit Java hab ich es nicht so...

Kann kur mal wer helfen?

Eine Funktion die eine 2-stellige Zahl auswirft hab ich schon.
Ich verzweifele nur daran wie ich das nun mit meinem Frameset verbinde...

Hier mal die Funktion:

<script type="text/javascript">
  <!--
  var jetzt = new Date();
  var Jahresmonat = jetzt.getMonth();
  var Monat = new
  Array "01","02","03","04","05","06","07","08","09","10","11","12");
  document.write('<table border bgcolor="#CCFFFF"><tr><td><b>');
  document.write(Monat[Jahresmonat] + "</b></td></tr></table>");
  //-->
</script>

Oder geht das auch einfacher?

Bitte um Hilfe

Gruß Achim

  1. Hi Achim,

    Ich habe folgendes vor:
    Auf meiner Homepage gibt es einen Terminkalender (einfache Tabelle auf 12 Seiten). Es nun immer der aktuelle Monat geöffnet werden.

    Klingt logisch.

    Die Verzeichnisstrucktur sieht so folgendermaßen aus:
    Jeder Monat hat ein ein eigenes Verzeichnis das von der Datei wo der Frameset drin liegt z.B. so aus sieht: data/03/index.htm
    (die 03 wäre der März)

    Hm, deine Idee mit dem Kalender - gut. Aber das mit einem Frameset???? - schlecht!!
    Frames sind veraltet und werden nicht mehr häufig gebraucht. Versuche ohne Frames auszukommen.

    Mein Frameset sieht z.Z. noch so aus:

    <frameset rows="40,60%,*">
      <frame src="data/auswahl.htm" name="Auswahl" target="Termine">
      <frame src="data/07/index1.htm" name="Termine" target="_self">
      <frame src="data/blank.htm" name="info" target="_self">
    </frameset>

    (hab das einwenig gekürzt damit das hier hin passt...)

    Ist doch alles wichtige da. Übrigends heißt das name="Termine" und nicht target - oder was willst du genau machen?

    Bisher ist es so das ich monatlich die Monatszahl des mittleren Frames austausche. Das ist mir was lästig geworden weil es ja autom. gehen muß.

    nimmt eine Serverseitige Scriptspreahce dazu.

    Ich hab auch schon einwenig mit getmonth experimentiert aber ohne Erfolg.

    Wo liegt das Problem?

    Mit Java hab ich es nicht so...

    Du redest von Javascrip!! Merke: Java != Javascript

    Kann kur mal wer helfen?

    kur? ;-)

    Eine Funktion die eine 2-stellige Zahl auswirft hab ich schon.
    Ich verzweifele nur daran wie ich das nun mit meinem Frameset verbinde...

    Mit einer clientseitige Scriptsprache (wie Javascript es ist) kannst du es
    im Prinzip vergessen. Denn wer Javascript deaktiviert hat, wird nichts zu sehen
    bekommen.

    <script type="text/javascript">
      <!--
      var jetzt = new Date();
      var Jahresmonat = jetzt.getMonth();
      var Monat = new
      Array "01","02","03","04","05","06","07","08","09","10","11","12");
      document.write('<table border bgcolor="#CCFFFF"><tr><td><b>');
      document.write(Monat[Jahresmonat] + "</b></td></tr></table>");
      //-->
    </script>

    Oder geht das auch einfacher?

    Nö, das oben müsste eigentlich gehen (nach new Array kommt noch eine Klammer auf).
    Das Script sollte funktionieren.

    Was willst du es noch einfacher? Bedenke jedoch, dass wenn jemand in seinem Browser
    Javascript deaktiviert hat, so wird er nicht viel zu sehen bekommen.

    Und wenn du <table ...> richtig in den Quellcode schreibst, solltest du </table> auch
    richtig reinschreiben, sonst gibt es nämlich ein Problem bei denen, die kein
    Javascript aktiviert haben.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:| mo:) zu:|
    Signatur 2 von 3:
    Die EU und die neuen Mitgliedslnder:
    http://www.riehle-web.com/pkprojekt/
    Oder doch mehr in HTML interessiert?
    http://tutorial.riehle-web.com
    1. Hallo Dennis,
      Du hast zwar ganz toll und ganz viel geschrieben aber nicht eine meiner Fragen benatwortet!!!

      Das das Script funktioniert seh ich selber, ich will aber wissen wie ich es scahffe wie immer die die Seite des aktuellen Monats geöffnet wird.

      Ist es nun Möglich das Java-Script in die Zeile:

      <frame src="data/07/index1.htm" name="Termine"  scrolling="yes" noresize="noresize" frameborder="0" target="_self">

      einzuarbeiten oder nicht?

      Anstatt der 07 in der Zeile soll dann die Ausgabe des Scriptes stehen.

      mfG Achim

  2. Hallo,

    Kann kur mal wer helfen?

    Ich versuchs.

    Hier mal die Funktion:

    ... nur steht bei Dir keine Funktion. Nun gut. Machen wir mal eine draus:

    <script type="text/javascript">
      <!--
      function getFrameName() {
        var meinFrame = "";
        var jetzt = new Date();
        var Jahresmonat = jetzt.getMonth();
        var Monat = new
        Array "01","02","03","04","05","06","07","08","09","10","11","12");

    meinFrame = '<frame src="data/'+Monat[Jahresmonat]+'/index1.htm" name="Termine" target="_self">';
        return meinFrame;
      }

    //-->
    </script>

    So. da hätten wir schonaml die Funktion. Jetzt müssen wir die noch an geeigneter Stelle aufrufen:

    Zum Bespiel hier:

    <frameset rows="40,60%,*">
      <frame src="data/auswahl.htm" name="Auswahl" target="Termine">
      <script language="Javascript">
      <!--
         document.write(getFrameName());
      //-->
      </script>
      <frame src="data/blank.htm" name="info" target="_self">
    </frameset>

    ungetestet aber trotzdem
    schönen Gruß

    Holger

    1. Hallo,

      das sieht schon mal vielversprechend aus...

      Danke schon mal vorweg, aber ein kleienr Fehler scheint sich eingeschlichen zu haben:

      Browser motzt: Fehler: ';' erwartet
      und das in der Zeile wo

      meinFrame = '<frame src="data/'+Monat[Jahresmonat]+'/index1.htm" name="Termine" scrolling="yes" noresize="noresize" frameborder="0" target="_self">';

      drin steht.

      Finde den Fehler aber nicht (weiß auch nicht wonach ich suchen soll...

      Hier noch mal alles was jetzt da steht:
      [...]
       </HEAD>
        <script type="text/javascript">
         <!--
          function getFrameName() {
             var meinFrame = "";
             var jetzt = new Date();
             var Jahresmonat = jetzt.getMonth();
             var Monat = new
             Array "01","02","03","04","05","06","07","08","09","10","11","12");
             meinFrame = '<frame src="data/'+Monat[Jahresmonat]+'/index1.htm" name="Termine" scrolling="yes" noresize="noresize" frameborder="0" target="_self">';
             return meinFrame;
            }
           //-->
        </script>

      <frameset rows="40,60%" frameborder="0" framespacing="0" border="0">
             <frame src="data/auswahl.htm" name="Auswahl"  scrolling="no" noresize="noresize" frameborder="0" target="Termine">
             <script language="Javascript">
             <!--
                document.write(getFrameName());
             //-->
            </script>
             <frame src="data/blank.htm" name="info"    scrolling="auto" noresize="noresize" frameborder="1" target="_self">
         <noframes>
             <p>Dieses Projekt verwendet Frames. Bei Ihnen werden keine Frames angezeigt.</p>
            </noframes>
        </frameset>
      </HTML>

      Vielleicht sieht wer den Fehler auf anhieb.

      Danke

      Gruß Achim

      1. Hallo Achim,

        Browser motzt: Fehler: ';' erwartet

        lass mich raten: der "Browser" ist ein IE? Schaff dir einen vernünftigen Browser an - mein Opera hat nämlich was ganz anderes gemeldet[1]:
        Syntax error while loading (line 10)
               var Monat = new Array "01"
         - und an dieser Meldung sieht man imho eigentlich recht eindeutig, dass da eine Klammer nach 'Array' fehlt.

        <script language="Javascript">

        hier fehlt das type-Attribut

        document.write(getFrameName());

        du weißt, dass die User ohne JS das Frame nie zu sehen bekommen werden, ja?

        Grüße aus Nürnberg
        Tobias

        [1] nachdem ich den Zeilenumbruch zwischen 'new' und 'Array' entfernt hatte, vorher stand in der zweiten Zeile der Fehlermeldung nur 'Array "01"'

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. Hi Tobias, Hi Achim,

          • und an dieser Meldung sieht man imho eigentlich recht eindeutig, dass da eine Klammer nach 'Array' fehlt.

          Was ich allerdings auch schon angemerkt habe. Achim scheint es allerdings nicht bekümmert zu haben.

          <script language="Javascript">
          hier fehlt das type-Attribut

          Und das language kann man weglassen.

          document.write(getFrameName());
          du weißt, dass die User ohne JS das Frame nie zu sehen bekommen werden, ja?

          Vermultich wird dort das Frame vielleicht gar nicht aufgebaut, da ein <frame...> fehlt.

          Deshalb ist es wichtig einen Noscript Bereich zu definieren, wenn du nicht willst, dass eventuell bei einem besseren Browser die ganze Seite "abschmiert":

          <noscript>
          <frame src="data/du_hast_kein_javascript.html" name="Termine">
          </noscript>

          Dann kannst du eine Alternativ-Seite anzeigen lassen, wenn der Browser kein Javascript untertsützt.

          MfG, Dennis.

          --
          Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:| mo:) zu:|
          Signatur 3 von 3:
          Fragen zu Formularen?
          http://tutorial.riehle-web.com hilft!