Jürgen Hoffmann: dynamisch erzeugter iframe immer mit Rahmen im IE

Hallo,

ich erzeuge dynamisch mit Javascript drei iframes. Für einen davon habe ich den Code unten angehängt. Im Firefox 1.5 wird der auch wie gewünscht dargestellt. Im IE 6.0 wird immer eine schmale "dreidimensionale" Linie links und oben am Rand gezeichnet. Durch einfärben der Flächen habe ich herausgefunden das diese Linie nicht der border ist. Die Linie liegt innerhalb(!) des margin, gehört aber nicht zu dem eingebetteten HTML Dokument.

Ich habe http://de.selfhtml.org/html/frames/eigenschaften.htm#rahmen2 gründlich gelesen. Und das besonders tragische ist, das die Linie nicht dargestellt wird, wenn ich den iframe schon von vorneherein in die Seite einbaue. Nur wenn ich den iframe dynamisch erzeuge.

Was mache ich dabei falsch?

Jürgen

var amaz1 = document.createElement("iframe");
amaz1.scrolling = "no";
amaz1.frameborder = "0";
amaz1.framespacing = "0";
amaz1.style.marginheight = "0";
amaz1.style.marginwidth = "0";
amaz1.style.position = "absolute";
amaz1.style.left = "888px";
amaz1.style.top = "450px";
amaz1.style.width = "130px";
amaz1.style.height = "230px";
amaz1.style.border = "0";
amaz1.src = "http://web.de";
bform.appendChild(amaz1);

  1. Nachtrag:

    Ich habe auch schon

    amaz1.marginheight = "0";
    amaz1.marginwidth = "0";

    benutzt, aber keinen Unterschied zu

    amaz1.style.marginheight = "0";
    amaz1.style.marginwidth = "0";

    feststellen können.

  2. Im IE 6.0 wird immer eine schmale "dreidimensionale" Linie

    Das muß ich korrigieren. Nicht immer!

    <magischeBeobachtung>
    Für ein eingebundenes HTML Dokument das folgendermaßen anfängt wird der Rahmen dargestellt:

    <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body topmargin=0 leftmargin=0 marginheight=0 marginwidth=0>.... diverser Content....

    Für ein Dokument das folgendmaßen beginnt wird der Rahmen nicht dargestellt:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="content-language" name="de">
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    <TITLE>Titel</TITLE>
    <link rel="STYLESHEET" type="text/css" href="../ci/80/css/schriften.css">
    <script language="JavaScript" src="../ci/80/js/suchenmaske.js"></script>
    </HEAD>
    <BODY  BGCOLOR="#FFFFFF" TEXT="#000000" Link="#000000" VLink="#000000" ALink="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">.... diverser Content....
    </magischeBeobachtung>

  3. Für die weitere Analyse habe ich mal die Werte von diesen Eigenschaften variiert:

    cframe.marginwidth = "5";
    cframe.marginheight = "10";
    cframe.topmargin = "15";
    cframe.leftmargin = "20";
    cframe.frameborder = "25";
    cframe.framespacing = "35";

    und mit einem Alert zur Laufzeit wieder ausgelesen.
    Die Werte werden offensichtlich gesetzt. Aber sie verändern die Darstellung im Browser nicht!?

    Wenn man im Mozilla die Seite abspeichert dann wird das iframe Tag folgendermaßen gespeichert:
    <iframe style="border: 0px none ; left: 10px; top: 144px; position: absolute;" name="Hotel" src="Willkommen.jsp-Dateien/cm.htm" height="1000" width="460"></iframe>

    Die geänderten Werte von z.B. cframe.style.border sind "angekommen". Aber alle 6 Werte von marginwidth etc. fehlen.

    Sind das nicht die richtigen Parameter?

    Im IE bringt das Abspeichern der Seite nichts, weil das dynamisch erzeugte Element nicht mitgepseichert wird, sondern nur der ursprüngliche HTML Sourcecode.

    Jürgen

  4. hi,

    amaz1.style.marginheight = "0";
    amaz1.style.marginwidth = "0";

    CSS kennt keine Eigenschaften marginheight und marginwidth.

    amaz1.style.border = "0";

    a würde ich vielleicht lieber "none" nehmen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. amaz1.style.marginheight = "0";
      amaz1.style.marginwidth = "0";

      CSS kennt keine Eigenschaften marginheight und marginwidth.

      OK. Ich bin inzwischen bei

      amaz1.topmargin = "0";
      amaz1.leftmargin = "0";

      amaz1.style.border = "0";

      a würde ich vielleicht lieber "none" nehmen.

      Mache ich jetzt auch. :)

      Nur ist immer noch dieser "Rahmen" da, wenn ich die Seite mit dem IE 6.0 betrachte. Firefox 1.5 stellt es mir ohne Rahmen dar.

      Jürgen

      1. hi,

        CSS kennt keine Eigenschaften marginheight und marginwidth.

        OK. Ich bin inzwischen bei

        amaz1.topmargin = "0";
        amaz1.leftmargin = "0";

        Warum nutzt du nicht die margin-Eigenschaft von CSS?

        Nur ist immer noch dieser "Rahmen" da, wenn ich die Seite mit dem IE 6.0 betrachte. Firefox 1.5 stellt es mir ohne Rahmen dar.

        Sind im Dokument, welches du in den Iframe hineinlädst, die border für dessen body und/oder html explizit abgeschaltet?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Warum nutzt du nicht die margin-Eigenschaft von CSS?

          Habe ich inzwischen auch gesetzt.

          Nur ist immer noch dieser "Rahmen" da, wenn ich die Seite mit dem IE 6.0 betrachte. Firefox 1.5 stellt es mir ohne Rahmen dar.

          Sind im Dokument, welches du in den Iframe hineinlädst, die border für dessen body und/oder html explizit abgeschaltet?

          Nein. Ich habe hier die ersten Tags von zwei Dokumenten gepostet:
          http://forum.de.selfhtml.org/?t=136752&m=888420

          Für das eine Dokument wird alles richtig gerendert.
          Für das andere erscheint der "Rahmen".

          Aber das Problem besteht nicht, wenn ich den iframe schon in den HTML Code einbaue. Nur beim dynamischen erzeugen gibts das Problem. Aber ich muß das dynamisch machen.

          Ich habe noch diverse Dinge heute probiert, bin aber keinen Zentimeter weitergekommen. Ich hatte noch probiert ob sich die 3 iframes gegenseitig beeinflussen. Aber das Problem tritt auch auf wenn ich nur einen iframe einbinde.

          Gruß, Jürgen