Matthias Schöchle: dynamisch eingefuegte iframes als target fuer formular

Schoenen guten Tag an alle!

Ich poste zum ersten mal und hoffe, dass jemand mir helfen kann. Ich habe niergends eine Info gefunden.

Mein Problem:
Ich erstelle dynamisch verschiedene IFrames:

var newIFrame       = document.createElement("IFRAME");
newIFrame.className = "IFrameCSS";
newIFrame.name      = "ausgabe"+counter;
newIFrame.src       = url;

document.getElementById("mydiv").appendChild(newIFrame);

anschließend sollen daten im Formuler an die verschiedenen dokumente in den IFrames geschickt werden. Dazu verwende ich folgenden Code, der beim Drücken eines Button ausgeführt wird:

function sendme()
{
    myform.target = "ausgabe1";
    myform.action = "tbl.php";
    myform.submit();
    myform.target = "ausgabe2";
    myform.action = "errortbl.php";
    myform.submit();
}

Das funktioniert aber nicht. Es werden immer neue Fenster geoeffnet.
Am Code von sendme liegt es nicht. Bei Hartkodierten IFrames funktioniert das senden.

Warum scheitert es bei den dynamischen IFrames und vor allem: was kann ich tun?

Vielen Dank schon im Voraus und viele Gruesse

Matthias

  1. Hallo an alle!

    Ich habe jetzt nach stundenlangem suchen doch was gefunden. Da die Loesung vielleicht auch andere interessiert, meine Ergebnisse:

    Im IE geht das wohl wegen einem Bug nicht, dass dyn. eingefuegte IFrames als target ansprechbar sind.

    Workaround:

    Einen DIV-Container dynamisch erstellen und ueber innerHtml den Code als Text einfügen.

    Das obige Bsp ändert sich wie folgt:

    // dynamisch erstellen:

    var htmlIFrame = "<iframe name='"+iframename+"' src='"+iframesrc+"' width='100%' height='100%'></iframe>";

    var IFrameDiv           = document.createElement("DIV");
        IFrameDiv.className = "winIFrameDivCss";
        IFrameDiv.ID        = "winIFrameDiv"+winCount;
        IFrameDiv.innerHTML = htmlIFrame;

    document.getElementById("mydiv").appendChild(IFrameDiv);

    Damit funktioniert es. Vielleicht muss man noch für mozilla was machen, aber ich muss eh noch die Div-Layer-Sache anpassen.

    Schoenen Tag noch ...

    1. Hi,

      Ich habe jetzt nach stundenlangem suchen doch was gefunden. Da die Loesung vielleicht auch andere interessiert, meine Ergebnisse:

      Super, daß Du das Ergebnis deiner Mühe hier noch gepostet hast! :-))

      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"!