Liza: Framebreite ändern

Hallo,

gibt es mit JS die Möglichkeit auf die jeweiligen Spaltenbreiten (also die cols) eines Framesets zuzugreifen? Also: linker Frrame wird breiter, rechter Frame entsprechend schmaler. Bin für jeden Tipp dankbar.

Um es vorweg zu sagen: Bitte keine Diskussion über Sinn und Zweck von Framesets und Javascript. ;-)

Ciao
Liza

  1. Jup, gibt es:
    Gib dem Frame eine ID, dann kannst du mit
    var f = document.getElementById("frameid");
    f.style.width = ...
    seine Breite setzen.

    MfG
    Rouven

    --

    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. Hallo,

      Gib dem Frame eine ID, dann kannst du mit
      var f = document.getElementById("frameid");
      f.style.width = ...

      Danke, hab ich mir zunächst auch gedacht, funktionierte aber nicht.
      Wahrscheinlich spreche ich den Frame verkehrt an.

      Ich rufe in meiner Hauptseite einen Iframe auf; dieser IFrame widerum läd ein Frameset mit 2 Spalten.

      Ich möchte von der Hauptseite nun die beiden Framesetspalten mit JS verändern.

      Meine Idee war nun:

      top.nameIframe.document.getElementById("frameid").style.width = "120px";

      Funktioniert aber irgendwie nicht. Wo steckt mein Fehler?

      Ciao
      Liza

      1. Hi,

        uuuii, noch mit iframe - das ist natürlich schwierig, da kenn ich mich mit der frame-document-Hierarchie nicht so aus, also was da wo liegt.
        Hast du mal testweise versucht, die Funktion in dem iframe einzubauen und dann zunächst von außen aufzurufen? Also
        <iframe name="iView" src="xyz.htm" ...>

        xyz.htm
        function resizeFrames() {
          ...
        }

        und dann in der Hauptdatei
        document.iView.resizeFrames();

        Wenn das klappt, kannst du ja mal weiter rumprobieren...

        MfG
        Rouven

        --

        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
        1. Hallo,

          ich hab mal 'nen einfachen Testframeset gebaut, bei dem sich aber leider auch nichts tut. :-(

          Beispiel:

          <html>
          <head>

          <script language="JavaScript">
            function test ()
              { document.getElementById('id1').style.width = '600px'; }
          </script>
          </head>

          <frameset onload="test ();" cols="200,*">
             <frame id="id1" src="Unbenannt1.html">
             <frame id="id2" src="Unbenannt2.html">
          </frameset>

          </html>

          Müsste sich hier nicht der Linke Frame automatisch auf 600px einstellen?

          Ciao
          Liza

          1. Oh,

            sorry, intuitives vs. praktisches Handeln. Was funktionieren müsste ist:
            <frameset id="fset">
              ...
            </frameset>

            Und dann
            var f = document.getElementById("fset");
            f.cols="600, *";

            MfG
            Rouven

            --

            -------------------
            ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
            1. Nachtrag:

              var f = document.getElementById("fset");
              f.cols="600, *";

              Vielleicht wäre
              f.setAttribute("cols", "600, *");
              etwas konformer mit dem W3C...

              MfG
              Rouven

              --

              -------------------
              ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
              1. Hey, danke!

                Klappt beides. Auf der Basis werd ich's auch für mein iFrame/Frame-Konstruktion hinkriegen.

                Hast mir viel geholfen!

                Ciao (und gute Nacht)
                Liza