Marcus: Javascript im Frameset

Hi Leute

Ich hab da ma ne Frage :)

Ich habe einen Frameset (index.html) mit 6 Frames etc.

Jetzt möchte ich, das die Hintergrundvilder der Frames ausgetauscht werden, kein Problem, wenn ich den JavaScript Code in einem der Frames habe (nicht in index.html). Wenn ich den Code aber in index.html einbauen, wird dieser nicht ausgeführt. Ist das normal ? Mache ich etwas falsch, geht das überhaupt ?

Vielen Dank schonmal im Vorraus

Marcus

  1. Hallo Marcus

    Wenn ich den Code aber in index.html einbauen, wird dieser nicht ausgeführt. Ist das normal ? Mache ich etwas falsch, geht das überhaupt ?

    Natuerlich geht das. Die Frames muessen halt entsprechend adressiert werden. Ohne deinen Quelltext zu kennen, kann man dazu aber nichts weiter Sinnvolles sagen ...

    viele Gruesse
      Stefan Muenz

    1. Kannste jetzt was dazu sagen ? :)

      Danke natuerlich schon im vorraus :)

      Bis denne
      Marcus

      <-- Schnipp index.html-->
      <head>
      <script type="text/javascript">
      <!--
      function setBack2() {
       parent.topleft.document.close();
       parent.topleft.document.write("<body background = "back2.bmp"></body>");

      parent.downleft.document.close();
       parent.downleft.document.write("<body background = "back1.bmp"></body>");

      // animated Gif Background
       parent.middleleft.document.close();
       parent.middleleft.document.write("<body background = "agifback1.bmp"></body>");
       parent.middleleft.document.write("<img src="saucer1.gif">");

      parent.window.resizeTo(645,625);

      window.setTimeout("setBack1()",3000);
      }

      function setBack1() {
       parent.topleft.document.close();
       parent.topleft.document.write("<body background = "back1.bmp"></body>");
       parent.downleft.document.close();
       parent.downleft.document.write("<body background = "back2.bmp"></body>");

      // animated Gif Background 2
       parent.middleleft.document.close();
       parent.middleleft.document.write("<body background = "agifback2.bmp"></body>");
       parent.middleleft.document.write("<img src="santa.gif">");

      parent.window.resizeTo(645,625);

      window.setTimeout("setBack2()",3000);
      }
      //-->
      </script>
      </head>

      <html>

      <!-- Creation date: 19.11.2001 -->

      <frameset cols="512,*" border=0>
        <frameset rows="65,*">
          <frame name="topleft" src="topleft.htm">
          <frameset rows="358,*">
            <frame name="inhalt" src="inhalt.htm">
            <frame name="downleft" src="downleft.htm">
          </frameset>
        </frameset>
        <frameset rows="423,*">
          <frameset rows="65,*">
            <frame name="topright" src="topright.htm">
            <frame name="middleleft" src="middleleft.htm">
          </frameset>
          <frame name="downright" src="downright1.htm">
        </frameset>
      <noframes>
      <body onload="setBack2()">

      </noframes>
      </frameset>

      </html>
      <-- Schnipp -->

      1. <body onload="setBack2()">

        Wird in einer Framesetdatei möglicherweise nur ausgeführt, wenn der Browser KEINE Frames kennt, weil es ja im Noframes-Bereich steht. Und in Framesets ist <body> (außer im Noframes-Bereich) nicht erlaubt.

        Starte dein Script so:

        ...
        <script type="text/javascript" language="javascript">
        <!--
        setBack2();
        //-->
        </script>
        </html>

        - Sven Rautenberg

        1. DANKE !!!
          Das war genau der richtige Tip !!
          Allerdings nicht ganz so wie du's gesagt hast, denn :
          Ich kann erst auf die Frames zugreifen, NACHDEM diese im HTML Code erzeugt wurden, deswegen muss der aufruf setBack1(); in die onload dingens des Framesets selber
          ( <frameset ... onload="setBack1()"> )

          Vielen Dank nochma an alle.

          Bis denne
          Marcus

          1. DANKE !!!
            Das war genau der richtige Tip !!
            Allerdings nicht ganz so wie du's gesagt hast, denn :
            Ich kann erst auf die Frames zugreifen, NACHDEM diese im HTML Code erzeugt wurden, deswegen muss der aufruf setBack1(); in die onload dingens des Framesets selber
            ( <frameset ... onload="setBack1()"> )

            Deswegen hatte ich angedeutet, den Javascript-Code direkt vor dem Dateiende einzufügen. ;)

            Egal, wenn Frameset auch onload kann und es funktioniert...

            Vielen Dank nochma an alle.

            Bis denne
            Marcus

            Bitte!

            - Sven Rautenberg

            1. :) Allerdings führt er am Ende irgendwie kein javascript mehr aus :)

              Egal, es funzt :)

              CU Maddi