GF: Inline Frame im Internet Explorer wird nicht korrekt angezeigt

Hallo,

ich habe eine Website erstellt, welche einen Inline Frame besitzt.
Über eine Navigationsleiste können die Inhalte, welche im Frame angezeigt werden, ausgesucht werden.

Hier der Quelltext der Hauptseite mit Navigation:

<html>
<head>
</head>
<body>
<table>
<tr>
<td>
    <p align="center">
    <iframe name="I1" src="home.htm" width="785" height="500" scrolling="auto" border="0" frameborder="0">
    Ihr Browser unterstützt Inlineframes nicht oder zeigt sie in der derzeitigen Konfiguration nicht an.</iframe></td>

<td width="120" height="50" background="../Rahmen/seitelinks.jpg">
    <a href="http://www.abc.de/Liste.htm" target="I1">
    <img border="0" src="../Navigation/Liste.jpg" width="120" height="50"></a></td>
  </tr>

</table>

</body>

</html>

Hiermit soll nun im Inline Frame folgender Quelltext ausgeführt werden (verkürzte Fassung, hier wird normalerweise auf die Datenbank eines Forums zugegriffen und die ausgelesenen Daten in einer Liste angezeigt)

<?php

header("Content-Type: application/xhtml+xml; charset=utf-8");

//HTML Code Part Top
  echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
  echo "\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">\n<head>\n<title>Liste</title>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\n

</head>\n<body bgcolor="#10BDFF">\n<table border="0" align="center">\n
<tr>\n
<td>öasjfdlösajf</td>
\n<
td>abcdefghijklm</td>\n
</tr>\n";

//HTML Code Bottom
  echo "</table>\n</body>\n</html>";
?>

Die Datei wurde als Liste.htm gespeichert.

Mit FF und Opera wird nun bei dem Klick in der Navigationsleite der Code ordnungsgemäß ausgeführt und die Daten angezeigt.
Der Internet Explorer (6 und 7) zeigt jedoch einen leeren Frame an und wenn in der Navigationsleiste noch mehrere Links vorhanden sind, sind diese auch nicht mehr auswählbar. Wird das Script im iframe jedoch als Startseite gesetzt und nicht home.htm, zeigt IE auch alles wie gewünscht an.

Bitte um Hilfe.

Gruß GF

  1. Hi,

    ich habe eine Website erstellt, welche einen Inline Frame besitzt.

    schade für Dich, Deine Besucher, sowie auch uns.

    Über eine Navigationsleiste können die Inhalte, welche im Frame angezeigt werden, ausgesucht werden.

    Demnach hat Deine Navigation keine Inhalte, und Deine Inhalte haben keine Navigation. Schade für Deine Besucher, die Dich über eine Suchmaschine zu finden versuchen.

    <html>

    Warum versetzt Du die Browser in den Quirks-Mode?

    <head>
    </head>

    Das *einzige* Element, das ein HTML-Dokument *wirklich* braucht, ist der <title>. Warum fehlt Deinem HTML-Code der wichtigste Teil?

    <body>
    <table>

    Dein gesamtes Dokument besteht aus tabellarischen Daten? Das halte ich für ein Gerücht. Du missbrauchst offensichtlich Tabellen für Layout-Zwecke - magst Du nicht allmählich mal im dritten Jahrtausend ankommen?

    <p align="center">
        <iframe name="I1" src="home.htm" width="785" height="500" scrolling="auto" border="0" frameborder="0">

    Warum öffnest Du einen Absatz des Textflusses und schließt ihn wieder, bevor ein Inhalt kommt?

    Ihr Browser unterstützt Inlineframes nicht oder zeigt sie in der derzeitigen Konfiguration nicht an.</iframe></td>

    Diese Information ist absolut nutzlos. Der Inhalt eines <iframe>-Elements dient dazu, all jene Clients, die keine <iframe>s laden (wollen), mit entsprechendem Inhalt zu versorgen, um dies zu kompensieren! Dies hier ist Schrott.

    <img border="0" src="../Navigation/Liste.jpg" width="120" height="50"></a></td>

    Auch hier wieder: Das <img>-Element kennt genau zwei zwingend benötigte Attribute: src und alt. Davon lässt Du 50% aus. Statt dessen verwendest Du border, für das es in HTML nicht den geringsten Grund gibt. Warum?

    <?php

    Entweder ist dies tatsächlich der Inhalt des geladenen HTML-Dokuments; dann wundert mich, dass _irgend_ ein Browser etwas anzeigt. Oder es ist serverseitiger Code, der bei clientseitigen Problemen nichts nützt. Der Client erfährt nichts hiervon; spezifiziere also *nur*, was bei diesem ankommt.

    Im Folgenden gehe ich davon aus, dass Du PHP-Code gepostet hast. Falls möglich, werde ich ihn zu interpretieren versuchen.

    header("Content-Type: application/xhtml+xml; charset=utf-8");

    Genau wie Du hat der IE noch nicht mitbekommen, dass wir uns im dritten Jahrtausend befinden. Er kann mit diesem MIME-Type nichts anfangen.

    echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';

    Hier versprichst Du ein Frameset ...

    </head>\n<body bgcolor="#10BDFF">\n<table border="0" align="center">\n

    ... das Du nicht lieferst. Magst Du nicht noch mal bei den Grundlagen von HTML ansetzen? Das impliziert selbstverständlich ein intensives Studium von CSS.

    Die Datei wurde als Liste.htm gespeichert.

    Oh. Arbeitest Du mit Windows 3, oder läuft der Server unter diesem Betriebssystem? In jedem Fall sollte das geändert werden.

    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. Deinen Sarkasmus in allen Ehren, aber du hast mir geholfen den Fehler zu finden.

      Nachdem ich die Zeile

      header("Content-Type: application/xhtml+xml; charset=utf-8");

      aus dem php-Code entfernt habe, zeigt auch der Internet Explorer alles soweit gewünscht an.

      Zu den anderen Bemerkungen:

      Warum versetzt Du die Browser in den Quirks-Mode?

      Vor dem <html> werde ich noch die Dokumenttyp-Deklaration ergänzen.

      Das *einzige* Element, das ein HTML-Dokument *wirklich* braucht, ist der <title>. Warum fehlt Deinem HTML-Code der wichtigste Teil?

      Ist vorhanden, aber wurde, um die Ansicht hier im Forum zu vereinfachen, entfernt.

      Dein gesamtes Dokument besteht aus tabellarischen Daten? Das halte ich für ein Gerücht. Du missbrauchst offensichtlich Tabellen für Layout-Zwecke - magst Du nicht allmählich mal im dritten Jahrtausend ankommen?

      Ja, ich missbrauche Tabellen für Layout-Zwecke, da meine CSS-Kenntnisse recht begrenzt sind und ich keinen wirklichen Nachteil an der Gestaltung mit Tabellen entdecken kann.

      Dann zum php-Script:

      echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';

      Hier versprichst Du ein Frameset ...

      Danke, ist mir nich aufgefallen.

      Die Datei wurde als Liste.htm gespeichert.

      Oh. Arbeitest Du mit Windows 3, oder läuft der Server unter diesem >>>Betriebssystem? In jedem Fall sollte das geändert werden.

      Könntest du vielleicht konstruktiv und begründet vorschlagen, welches  Format ich nutzen soll?

      1. Hi,

        Deinen Sarkasmus in allen Ehren, aber du hast mir geholfen den Fehler zu finden.

        wieso "aber"? ;-)

        Nachdem ich die Zeile
        header("Content-Type: application/xhtml+xml; charset=utf-8");
        aus dem php-Code entfernt habe, zeigt auch der Internet Explorer alles soweit gewünscht an.

        Du solltest vor allem Dein auf Frames basierendes Konzept korrigieren.

        Ja, ich missbrauche Tabellen für Layout-Zwecke, da meine CSS-Kenntnisse recht begrenzt sind und ich keinen wirklichen Nachteil an der Gestaltung mit Tabellen entdecken kann.

        Na gut, dann kannst Du auch bei Frames bleiben. Alternativ kannst Du Dich zu der Erkenntnis durchringen, dass die Aussage "da meine CSS-Kenntnisse recht begrenzt sind" auf eine geringere Kompetenz schließen lässt, die ein Urteil der Art "ich [kann] keinen wirklichen Nachteil an der Gestaltung mit Tabellen entdecken" arg relativiert, ganz besonders im Hinblick auf absolut gegenteiliger Urteile von Leuten, deren CSS-Kenntnisse weit weniger begrenzt sind. Ich vermute, Du würdest die Aussage "Meine Maschinenbauer-Kenntnisse sind arg begrenzt, und ich kann keinen wirklichen Nachteil daran erkennen, vom fünften in den Rückwärtsgang zu schalten." auch nicht als besonders weise ansehen.

        Die Datei wurde als Liste.htm gespeichert.

        Oh. Arbeitest Du mit Windows 3, oder läuft der Server unter diesem >>>Betriebssystem? In jedem Fall sollte das geändert werden.
        Könntest du vielleicht konstruktiv und begründet vorschlagen, welches  Format ich nutzen soll?

        Es bietet sich die Hypertext Markup Language anstatt des Hyptertext Markups an.

        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. Hallo Cheatah,

          Es bietet sich die Hypertext Markup Language anstatt des Hyptertext Markups an.

          Was macht da den Unterschied? Ich habe vor kurzem hier gelernt, dass man antweder .htm _oder_ .html nehmen könne.

          Bin lernwillig und bitte um Erklärung :)

          Schönen Gruß,
          Adda

          1. @@Adda:

            Was macht da den Unterschied? Ich habe vor kurzem hier gelernt, dass man antweder .htm _oder_ .html nehmen könne.

            Du kannst auch .foo nehmen; müssest deinem Server aber beibringen, Dateien mit dieser Endung als HTML-Dokumente zu behandeln, was er bei .htm und .html schon durch Voreinstellung tut.

            Ob du .htm oder .html verwendest, ist Geschmackssache. Meinen Geschmack trifft .htm ebensowenig wie Cheatahs; ich verwende auch .html - als Dateiendung im lokalen Dateisystem. Im URI wie gesagt endungslos.

            Live long and prosper,
            Gunnar

            --
            „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    2. @@Cheatah:

      Das *einzige* Element, das ein HTML-Dokument *wirklich* braucht, ist der <title>.

      Nope. Ein HTML-Dokument braucht *wirklich* folgende Elemente: 'html', 'head', 'title', 'body' (in der Transitional-Variante; bei Strict kommt noch ein Kind-Element von 'body' hinzu).

      Du solltest doch den Unterschied zwischen „Element“ und „Tag“ kennen. Veranlasste dich die Unsitte vieler, „Tag“ zu sagen, wenn „Element“ gemeint ist, dazu, ins andere Extrem zu fallen?

      <p align="center">
          <iframe name="I1" src="home.htm" width="785" height="500" scrolling="auto" border="0" frameborder="0">

      Warum öffnest Du einen Absatz des Textflusses und schließt ihn wieder, bevor ein Inhalt kommt?

      Nope, tut er nicht. 'iframe' ist Inline-Inhalt. Das <iframe>-Tag schließt nicht das 'p'-Element.

      echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';

      Hier versprichst Du ein Frameset ...

      Dort aber nicht. Public Identifier ("-//W3C//...") und System Identifier (URI der DTD) sollten schon zusammenpassen.

      Die Datei wurde als Liste.htm gespeichert.

      Oh. Arbeitest Du mit Windows 3, oder läuft der Server unter diesem Betriebssystem? In jedem Fall sollte das geändert werden.

      Die zwingende Notwendigkeit, HTML-Dateien die Endung ".html" zu verpassen, wäre welche?

      Live long and prosper,
      Gunnar

      --
      „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)