Peter Kaufmann: Mozilla 1.0.0 zeigt noframe Bereich falsch an

Hallo liebe Gemeinde,

ich habe mir eben noch einmal das SelfHTML Kapitel zu Frames durchgelesen und festgestellt, daß es möglich ist auch in ganz normalen HTML Dateien einen noframe Bereich zu definieren (muss ich bisher immer überlesen haben). Laut Angabe müsste Netscape ab Version 2 diese Feature unterstützen, was nahelegt, daß Mozilla es auch unterstützen wird --- leider ist das aber zumindest bei mir (Mozilla 1.0.0 auf Debian GNU/Linux) nicht der Fall: Wenn ich die Beispielseite http://selfhtml.teamone.de/html/frames/anzeige/frames2.htm aufrufe sehe ich dem rechten Frame den Quellcode der in dem noframe Bereich steht.
Ist dies ein generelles Problem von Mozilla oder ein Problem meiner konkreten Installation? Haben andere Browser auch diese Problem? Zumindest bei w3 aus dem XEmacs heraus gibt es ein ähnliches Problem: Hier wird der noframe Bereich fälschlicherweise interpretiert und angezeigt. Getestet habe ich sonst nur noch links, an dessen Darstellung nichts auszusetzen ist.

Grüße,
Peter

  1. Aloha!

    Ist dies ein generelles Problem von Mozilla oder ein Problem meiner konkreten Installation? Haben andere Browser auch diese Problem? Zumindest bei w3 aus dem XEmacs heraus gibt es ein ähnliches Problem: Hier wird der noframe Bereich fälschlicherweise interpretiert und angezeigt. Getestet habe ich sonst nur noch links, an dessen Darstellung nichts auszusetzen ist.

    Das ist ein Problem mit deiner (und SelfHTMLs) Interpretation von <noframes>. Es ist in der Tat nur in Framesetdefinitionen erlaubt, aber nicht in normalen Seiten. Denn leider wirkt es dort nicht so, wie z.B. <noscript>. Manche Browser verstecken <noframes>, manche anderen nicht - das macht es praktisch unbrauchbar, egal ob es nun laut Validator erlaubt wäre oder nicht. Dabei wäre ein Verhalten wie bei <noscript> wirklich sinnvoll, da man so zusätzliche Navigationshilfen für Nicht-Frames-Browser leicht hätte einbauen können.

    - Sven Rautenberg

    1. Hi!

      Das ist ein Problem mit deiner (und SelfHTMLs) Interpretation von <noframes>. Es ist in der Tat nur in Framesetdefinitionen erlaubt, aber nicht in normalen Seiten. Denn leider wirkt es dort nicht so, wie z.B. <noscript>.

      Nope! http://www.w3.org/TR/html4/loose.dtd und http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd erlauben noframes und definieren es als Blockelement.

      Gruß Herbalizer

      1. Hallo,

        Nope! http://www.w3.org/TR/html4/loose.dtd und http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd erlauben noframes und definieren es als Blockelement.

        Aber nur im FRAMESET-Kontext.

        MfG, Thomas

        1. Hi!

          Nope! http://www.w3.org/TR/html4/loose.dtd und http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd erlauben noframes und definieren es als Blockelement.

          Aber nur im FRAMESET-Kontext.

          Sieht das wie Framesetcontext aus?

          XHTML1.0 Transitional:

          <!--================== Block level elements ==============================-->

          <!ENTITY % heading "h1|h2|h3|h4|h5|h6">
          <!ENTITY % lists "ul | ol | dl | menu | dir">
          <!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">

          <!ENTITY % block
              "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">

          <!ENTITY % Block "(%block; | form | %misc;)*">

          <!-- %Flow; mixes Block and Inline and is used for list items etc. -->
          <!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">

          Framesets werden in dieser DTD überhaupt nicht definiert (im Gegensatz zu HTML4.0) Ob es sinnvoll ist noframes ohne Frameset einzusetzen ist natürlich 'ne andere Sache, der Einsatz würde höchtens bei iframes Sinn machen. Aber eigentlich auch da nicht, da iframe ja selbst andere Elemente enthalten kann.

          Ausserdem ist es vom W3C tatsächlich auch so vorgesehen, das auch in Dokumenten, welche Quelle eines Frames sind, selbst aber keine Frames enhalten, noframes eingesetzt werden kann:

          NOFRAMES may be used, for example, in a document that is the source of a frame and that uses the transitional DTD. This allows authors to explain the document's purpose in cases when it is viewed out of the frameset or with a user agent that doesn't support frames. [http://www.w3.org/TR/html4/present/frames.html#edef-NOFRAMES]

          Gruß Herbalizer

          Gruß Herbalizer

          1. Hallo,

            Framesets werden in dieser DTD überhaupt nicht definiert (im Gegensatz zu HTML4.0) Ob es sinnvoll ist noframes ohne Frameset einzusetzen ist natürlich 'ne andere Sache, der Einsatz würde höchtens bei iframes Sinn machen. Aber eigentlich auch da nicht, da iframe ja selbst andere Elemente enthalten kann.

            OK, ich bezog mich auf die 4.0-DTD und dort ist NOFRAMES Kind von FRAMESET und kann ggf. noch einen BODY als Parent erhalten.

            MfG, Thomas

            1. hi

              OK, ich bezog mich auf die 4.0-DTD und dort ist NOFRAMES Kind von FRAMESET und kann ggf. noch einen BODY als Parent erhalten.

              Es ist aber auch wie hier verwendet erlaubt. Aber weil alle Theorie grau ist, kommt das Ding nur zum Vorschein, wenn der Browser keine Frames kann, oder wenn man sie - wie in Opera möglich - abschaltet.

              Grüße aus Bleckede

              Kai

              1. Hallo,

                Es ist aber auch wie hier verwendet erlaubt. Aber weil alle Theorie grau ist, kommt das Ding nur zum Vorschein, wenn der Browser keine Frames kann, oder wenn man sie - wie in Opera möglich - abschaltet.

                Ich habe mal je ein Transitional HTML 4.01- und XHTML 1.0-Dokument mit <noframes>...</noframes> im BODY mit dem Validator gecheckt und es gab keinen Fehler. Im Strict-Mode ist es dann aber nicht mehr erlaubt.

                Nun gut, ich kenne viele Diskussionen um NOFRAMES, die diese Faelle nie betrachtet haben. Man lernt halt nur dazu.

                MfG, Thomas

                1. hi

                  Ich habe mal je ein Transitional HTML 4.01- und XHTML 1.0-Dokument mit <noframes>...</noframes> im BODY mit dem Validator gecheckt und es gab keinen Fehler. Im Strict-Mode ist es dann aber nicht mehr erlaubt.

                  logisch - Strict kennt ja auch keine Frames mehr.

                  Grüße aus Bleckede

                  Kai

        2. Hallo Thomas,

          Nope! http://www.w3.org/TR/html4/loose.dtd und http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd erlauben noframes und definieren es als Blockelement.

          Aber nur im FRAMESET-Kontext.

          Wenn ich mich [und PSGML ;-)] nicht ganz täusche, ist noframes sehr wohl im normalen Kontext von html4 erlaubt.
          Das ist (wie Sven schon bemerkte) ja auch sinvoll: Auf diese Weise kann man für Browser die keine Frames darstellen können eine Navigationshilfe integrieren. Wenn das aber dann dazuführt, daß Mozilla (zumindest in der Version 1) und vermutlich auch Netscape ab Version 6, die Darstellung so auseinandernehemen ist dieser wunderbar elegante Weg auch schon wieder gestorben :-(
          Oder fällt euch eine Workaround dazu ein?

          Grüße,
          Peter

  2. hi

    Ist dies ein generelles Problem von Mozilla oder ein Problem meiner konkreten Installation?

    bei mir ist der <noframes>-Block _immer_ weg (Mozilla 1.1beta), in 1.0 kann ich deinen Fehler allerdings nachvollziehen.

    Grüße aus Bleckede

    Kai