Ulf Lieden: IFRAME-Inhalt an DIV übertragen - ohne Skriptverlust?

Hi zusammen,

ich versuche, den Inhalt einer IFRAME ein DIV zu übertragen. Dies um die Unfähigkeit des DIVs, exerne Dateien anzuzeigen, zu umgehen. IFRAMEs sind ja sehr robust, aber leider lassen sie sich ja nicht überdecken mit anderen Seitenelementen.

Statische Inhalte lassen sie sich auch problemlos von IFRAME nach DIV kopieren, im IE mit "innerHTML". Die Skriptfähigkeit scheint dabei aber baden zu gehen. Hat jemand eine Lösung auf Lager, wie man dies umgehen kann?

Ein Beispiel für diese Problemstellung gibt's auf die Seite http://www.geocities.com/Athens/Ithaca/1967/treeview/test.htm.

Gruß,
UlfL

  1. Hallo UlfL

    Statische Inhalte lassen sie sich auch problemlos von IFRAME nach DIV kopieren, im IE mit "innerHTML". Die Skriptfähigkeit scheint dabei aber baden zu gehen. Hat jemand eine Lösung auf Lager, wie man dies umgehen kann?

    Soweit ich gesehen habe, verwendest du zur Steuerung des Iframes eine zusätzliche externe js-Datei. Die befindet sich jedoch nicht auf der Seite mit dem Div. Probiere mal, ob es klappt, wenn du diese dort mit einbindest.
    Ich habe es für der IE nie getestet, aber der Navi führt Scripte von Seiten, die in divs geladen werden, auch nur aus, wenn die dort angefordeten Funktionen auf der ladenden Seite stehen. Eventuell verhält sich der IE hier genauso.

    Viele Grüße
    Antje

    PS: Es wäre nett, wenn du uns mitteilen würdest, ob das klappt.

    1. Hi Antje,

      Soweit ich gesehen habe, verwendest du zur Steuerung des Iframes eine zusätzliche externe js-Datei. Die befindet sich jedoch nicht auf der Seite mit dem Div. Probiere mal, ob es klappt, wenn du diese dort mit einbindest.

      und Danke für Dein Tipp. Hab' die beiden .js-Dateien eingbeunden, funktioniert aber trotzdem nicht. Das einzige, was jetzt auf der IFRAME-Seite steht aber nicht auf der DIV-Seite, ist der Befehl initializeDocument(), der den Baum erzeugt.

      Muß aber noch Alex Tipp mit insertAdjacentHTML testen...

      Gruß,
      UlfL

  2. Die Skriptfähigkeit scheint dabei aber baden zu gehen. Hat jemand eine Lösung auf Lager, wie man dies umgehen kann?

    Hi Ulf,

    auch wenn ich dir keine Paradelösung bieten kann, versuche es mal mit insertAdjacentHTML(). Die Dokumentation findest du in SelfHTML.
    innerHTML hat nähmlich folgendes Problem:
    -es ist eine Sringvariable
    -Form "blabla" (ist ja klahr)
    -was ist mit innerHTML="<script src="datei">"
    -richtig da stören die "
    -also entweder du parst die ganze sache und setzt ein \vor jedes "
    -oder insertAdjacentHTML() löst dieses Problem

    Viel Spass beim probieren

    ALEX

    1. Hi Alex,

      -was ist mit innerHTML="<script src="datei">"

      Das verstehe ich nicht ganz. Soll ich die .js-Dateien oder die externe HTML-Datei ins DIV reinlinken? Soweit ich weiß geht das nicht.

      -oder insertAdjacentHTML() löst dieses Problem

      Das Problem mit insertAdjacentHTML ist, daß ich ja trotzdem den IFRAME-Code exrahieren muß, und das geht, soweit ich weiß, nur mit "iframeName.-.innerHTML". Und innerHTML liefert tatsächlich HTML zurück, nicht nur Text. Wenn der IFRAME-Code statt mit innerHTML mit innerText ins DIV geschrieben wird, erscheint im DIV der Quellcode, also "<html><head>...".

      Trotzdem vielen Dank für Deine Tipps. Ich werde weiterversuchen.

      Gruß,
      UlfL