Andreas: warum funktioniert das bitte nicht im Firefox

Hallo zusammen,

in der iframe-Zeile will ich mit onload eine Funktion ausführen, was auch funktioniert. Ich teste das mit alert und im IE wird diese Meldung sogar 2x gezeigt?

Doch warum funktioniert die Zeile:

document.getElementById('iframe').style.height = frames['iframe'].document.body.scrollHeight

im Firefox nicht?

Würde mich über Eure Auskunft freuen. Gruß Andreas

  1. Hi,

    Doch warum funktioniert die Zeile:

    document.getElementById('iframe').style.height = frames['iframe'].document.body.scrollHeight

    im Firefox nicht?

    Sie kann auf jeden Fall schon mal rein deshalb nicht "funktionieren", weil du keine Einheit angibst, und damit fuer jeden anderen Fall als 0 einen ungueltigen Wert zuweist.

    Ob noch weitere Fehler vorhanden sind, koennen wir aus deinem "funzt nicht" und so wenig Code natuerlich nicht erahnen.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. document.getElementById('iframe').style.height = frames['iframe'].document.body.scrollHeight

      im Firefox nicht?

      Sie kann auf jeden Fall schon mal rein deshalb nicht "funktionieren", weil du keine Einheit angibst, und damit fuer jeden anderen Fall als 0 einen ungueltigen Wert zuweist.

      Addendum:

      scrollHeight gibt einen Integer Wert zurück, der in Pixel zu interpretieren ist.
      https://developer.mozilla.org/pl/DOM/element.scrollHeight

      mfg Beat

      --
      Woran ich arbeite:
      X-Torah
      ><o(((°>           ><o(((°>
         <°)))o><                     ><o(((°>o
      1. Hallo

        Was hinderten bitte dem iframe einen Wert zuzuweisen im Format integer? Scrollheight gibt die Höhe des Inhalts an und die Größe des iframes soll daran ausgerichtet werden? Dafür kein Wert im Format integer notwendig? Der IE führt alles wie gewünscht aus. Und schon wenn ich alert(document.getElementById('iframe').style.height) eingebe wird da nix vom Firefox angezeigt.

        Danke Gruß Andreas

        1. Lieber Andreas,

          Was hinderten bitte dem iframe einen Wert zuzuweisen im Format integer?

          mal ganz der Reihe nach: CSS-Eigenschaften mit numerischen Werten benötigen in aller Regel eine Maßeinheit (z.B. "px", "cm", "em" usw.), damit sie gültig sind. Bei der Null ist die Einheit egal, denn Null Eier sind in etwa dasselbe wie Null Osterhasen, nämlich nix.

          Der IE führt alles wie gewünscht aus.

          Klar, der ist ja auch kein Browser. Zumindest verhält er sich oft genug so, wie es ein Browser eben nicht täte. Daher ist das Argument, dass es "im IE funzt", ein mega schlechtes.

          Und schon wenn ich alert(document.getElementById('iframe').style.height) eingebe wird da nix vom Firefox angezeigt.

          Kannst Du bestätigen, dass frames['iframe'].document.body.scrollHeight im FF einen sinnvollen Wert enthält, bzw. dass das von Dir hier einfach vorausgesetzte Objekt überhaupt existiert? Was sagt eigentlich die Fehlerkonsole des FF dazu? Meines Wissens bist Du uns diese Aussage noch immer schuldig geblieben...

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Hallo

            Bei der Zeile

            alert(document.getElementById('iframe').style.height)

            zeigt dieser die Fehlermeldung document.getElementById('iframe') is null, so auch bei der Zeile

            document.getElementById('iframe').style.height = frames['iframe'].document.body.scrollHeight

            und

            alert(frames['iframe'].document.body.scrollHeight)

            gibt den Wert aus.

            Gruß Andreas

            1. gibt den Wert aus.

              Interessant.

              Struppi.

              1. Hallo ChrisB

                die Seite enthält eine Navigationsleiste mit der der Inhalt im Iframe auf der gleichen Seite geöffnet wird. Und das Iframe enthält Onload um diese Funktion auszuführen.

                Und jetzt schreibe ich alert(top.Frame3.frames['iframe'] style.height oder nur height und es wird eine entweder eine Fehlermeldung oder der Wert undefined ausgegeben.

                Gruß Andreas

                1. Und jetzt schreibe ich alert(top.Frame3.frames['iframe'] style.height oder nur height und es wird eine entweder eine Fehlermeldung oder der Wert undefined ausgegeben.

                  Die Fehlermeldung wird wohl seinen Grund haben der aber aus dem was du uns zeigst nicht ersichtlich ist, aber warum der Wert undefined ist hatte ich dir schon gesagt.

                  Struppi.

                  1. Hallo und bitte wie läßt sich das im Firefox realisieren?

                    Danke

                    1. Hallo und bitte wie läßt sich das im Firefox realisieren?

                      tut mir leid, ich hab hier dem Threrad den Faden verloren. was läßt sich realisieren?

                      Struppi.

        2. Was hinderten bitte dem iframe einen Wert zuzuweisen im Format integer?

          Weil diese eigenschaft kein Integer ist, probier es aus:
          javascript:alert(typeof document.body.style.width);

          Der IE führt alles wie gewünscht aus.

          Der IE macht viel wenn der Tag lang ist, hier versucht er einfach zu raten was du meinst. FF ist sich nicht sicher welche http://de.selfhtml.org/css/formate/wertzuweisung.htm#numerische@title=Einheit du meinst und ignoriert es einfach.

          Und schon wenn ich alert(document.getElementById('iframe').style.height) eingebe wird da nix vom Firefox angezeigt.

          Weil du so nur die Werte auslesen kannst, die du entweder per Skript oder als inline Style zugewiesen hast. sie sagen aber nichts aus über die tasächliche Größe des Elementes.

          Struppi.

          1. FF ist sich nicht sicher welche http://de.selfhtml.org/css/formate/wertzuweisung.htm#numerische@title=Einheit du meinst und ignoriert es einfach.

            Doch, der FF ist sich absolut sicher, was er da hat, nämlich einen ungültigen Wert und der wird ignoriert.

            --
            Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
            Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|
        3. Hallo

          Bei der Zeile

          alert(document.getElementById('iframe').style.height)

          zeigt dieser die Fehlermeldung document.getElementById('iframe') is null, so auch bei der Zeile

          document.getElementById('iframe').style.height = frames['iframe'].document.body.scrollHeight

          und

          alert(frames['iframe'].document.body.scrollHeight)

          gibt den Wert aus.

          Gruß Andreas

          1. Hi,

            Bei der Zeile

            alert(document.getElementById('iframe').style.height)

            zeigt dieser die Fehlermeldung document.getElementById('iframe') is null

            Dann zeig' uns bitte die Stelle, wo du das Element mit der ID "iframe" angelegt hast.

            MfG ChrisB

            --
            „This is the author's opinion, not necessarily that of Starbucks.“
  2. Hi,

    Doch warum funktioniert die Zeile:
    im Firefox nicht?

    Gegenfrage: Warum funktioniert "funktioniert nicht" in einer Fehlerbeschreibung nicht?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Gegenfrage: Warum funktioniert "funktioniert nicht" in einer Fehlerbeschreibung nicht?

      Diese behinderte Kritik immer hier...
      Denk dir doch einfach den richtigen Begriff oder bekommst du das nich auf die Reihe? Es gibt auch Leute, die keine Ahnung in gewissen Gebieten haben!

      1. Hi,

        Diese behinderte Kritik immer hier...

        Immer diese Ausdrucksweise ...

        Es gibt auch Leute, die keine Ahnung in gewissen Gebieten haben!

        Gerade die sollten sich bemuehen, ihr Poblem so sorgfaeltig wie moeglich zu beschreiben.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
      2. Lieber Pasi,

        Diese behinderte Kritik immer hier...

        Du lernst, wenn Du Dir für die Formulierung Deines Problems Mühe gibst. Du lernst nichts und erreichst hier auch eher nichts, wenn Du Dir keine Mühe gibst.

        Und ich bin mir nichteinmal sicher, ob Du das Obige verstehen wirst... Mir sind jedenfalls nun schon öfters die Lösungen zu meinen Problemen bei der Formulierung eingefallen, als ich sie hier posten wollte. Eben gerade weil ich mir dafür viel Mühe gegeben habe und weil der Fehler jedesmal im Dateil lag, konnte ich die Lösung wegen der Mühe überhaupt erst entdecken.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      3. Hallo,

        Gegenfrage: Warum funktioniert "funktioniert nicht" in einer Fehlerbeschreibung nicht?
        Diese behinderte Kritik immer hier...

        diese kurzsichtige Sturheit immer hier ...

        Denk dir doch einfach den richtigen Begriff oder bekommst du das nich auf die Reihe?

        Es geht hier nicht darum, den richtigen Begriff zu verwenden. Doch, vielleicht auch. Aber wenn jemand den richtigen Ausdruck nicht kennt, ist das normalerweise kein Problem.
        Es geht aber darum, ein Problem zu *beschreiben*, so dass jemand anders eine klare Vorstellung davon hat. Und "funktioniert nicht" sowie diverse Abwandlungen dieser Formulierung transportieren nun mal keine Information.

        So long,
         Martin

        --
        Die letzten Worte des stotternden Beifahrers:
        Frei... frei... frei... freilich kommt da was!!