Kai: Frameset-Größe verändern

Hi,

hoffe es kann mir jmd helfen.

Ich habe das Problem, dass ich den Frameset verändern möchte. Nun habe ich mit .setAttribute die Spalten zwar neu gesetzt, aber der Mozilla unter Linux zeigt das nicht an. Die Attribute sind wirklich neu gesetzt - wenn man sich die ausgeben lässt, dann gibt er die richtigen Werte aus. Unter Windows hat es auch im IE und Mozilla funktioniert, aber unter Linux nicht. Möchte nicht den Inhalt des Framesets laden, sondern nur die Größe dynamisch verändern.

Kann mir hierzu jmd helfen  - hab auch scho im Internet (google) und im Archiv gesucht, aber hierzu nichts gefunden.
VG Kai

  1. Hi,

    Die Attribute sind wirklich neu gesetzt - wenn man sich die ausgeben lässt, dann gibt er die richtigen Werte aus. Unter Windows hat es auch im IE und Mozilla funktioniert, aber unter Linux nicht.

    Hmm, ich kenne so etwas nur von Mozilla allgemein, nicht speziell von der Linux-Version.

    Mozilla braucht ggf. nach der Größenänderung einen Seiten-Refresh. Wenn der Frame größer wird, schicke dem Frame also einfach noch ein reload() oder einen replace() auf sich selbst ...

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Mozilla braucht ggf. nach der Größenänderung einen Seiten-Refresh. Wenn der Frame größer wird, schicke dem Frame also einfach noch ein reload() oder einen replace() auf sich selbst ...

      reload() oder replace() kann man soweit ich weiß nur ein window - also wird das ganze wieder neu geladen,v.a. steht ja in der Datei, in der der Frameset gesetzt wird, noch der nicht geänderte Wert.

      Ok hier mal ein Programmausschnitt:

      <html>
      <head>
      <title>Demo</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      </head>

      <frameset rows="20,24,*" frameborder="2" border="0" framespacing="0" bordercolor="#FFFFFF">
        <frame name="Test" scrolling="NO" src="test_dt.htm" marginwidth="4" marginheight="4">
        <frameset cols="50,*" frameborder="0" border="0" framespacing="0">
          <frame name="Name" scrolling="NO" src="name.htm" frameborder="5" framespacing="0" marginheight="0" marginwidth="0" >
          <frame name="Kopf" scrolling="NO" src="head.htm" frameborder="5" framespacing="0">
        </frameset>
        <frameset cols="200,*" frameborder="3" border="3" framespacing="2" bordercolor="#FFFFFF">
          <frame name="Inhalt" scrolling="YES" src="/servlet/showInhalt?ID=00000000">
          <frameset cols="*,0" frameborder="3" border="3" framespacing="2" bordercolor="#FFFFFF">
            <frame name="Text" src="text.htm">
            <frame name="Grafik" src="grafik.htm" frameborder="5" framespacing="0">
          </frameset>
        </frameset>
      </frameset>
      <noframes><body bgcolor="#FFFFFF">
      </body></noframes>
      </html>

      Und hier die FUnktion, in der der Frameset auf 0 gesetzt werden soll, wenn man auf einen Button klickt - also bei Klick auf Button wird diese Funktion aufgerufen. Wenn man das 2.Mal klickt, sollte der Frameset wieder auf 235 gesetzt werden, damit man ihn sieht.
      function toggleInhalt()
        {
          if(parent.document.getElementsByTagName("frameset").item(2).getAttribute("cols")!="0,*")
          {
            parent.document.getElementsByTagName("frameset").item(2).setAttribute("cols","0,*");
            aktInhView = false;
          }
          else
          {
            alert(parent.document.getElementsByTagName("frameset").item(2).getAttribute("cols"));
            parent.document.getElementsByTagName("frameset").item(2).setAttribute("cols","235,*"); //Syntax für Mozilla
            aktInhView = true;
          }
        }

      Unter Windows gings wie erwähnt ohne reload.

      1. Hi,

        reload() oder replace() kann man soweit ich weiß nur ein window -

        Jeder Frame ist ein window. Ein Frame ist nur nicht das top.window.

        Ok hier mal ein Programmausschnitt:

        Ich überflieg's mal:

        if(parent.document.getElementsByTagName("frameset")

        Hier fehlt die Nummer des gewünschten Frameset.

        .item(2)

        Diese Syntax kenne ich nicht.

        Also spontan: entweder liegt der Fehler hier, oder dein Linux-Mozilla hat einen Bug.

        Meinen Code (ich verwende ein schnörkelloses getElementById() nebst einem replace() auf sich selbst) kannst Du unter http://Coding.vampirehost.de/Win95 ausprobieren (Maximize-Button des gefakten Windows). Seinerzeit auch mit Linux-Mozilla erfolgreich getestet ...

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Ok lag an meiner Mozilla-Version. Hab jetz 1.7 installiert - jetz gehts ;-))) hatte vorher Mozilla 0.9.8

          Vielen Dank
          Kai

  2. hi

    hast du vieleicht etwas relevanten code für uns?

    so long
    ole
    (8-)>