Andreas Päßler: Element im IFrame ändern

Hallo miteinander, ich bin auf das Problem gestoßen, ein Element im IFrame von parent aus zu ändern. Die einfache Abfrage außerhalb des Fensters auf Existenz:

var iframe = document.getElementById('frame_id');
var inner = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
var obj = inner.getElementById("elemID");
alert(obj); // ergibt null! Mein letzter Versuch! 

Vorausgegangen war: var obj = window.frames[0].document.getElementById('elemID') ;

Nichts führt dazu, dass das blockquote-Element mit der ID „elemID“ als [object HTMLQuoteElement] erkannt wird. Das trifft übrigens auf alle Elemente, die Inhalt des IFrames sind, zu.

Gibt es grundlegende Probleme zu beachten? Ich kann mir nicht vorstellen, dass aus dem Elternfenster kein Zugriff auf Elemente des IFrames möglich sein soll. Oder?

Es wäre toll, wenn sich jemand diesem Problem widmen könnte.

  1. Hi,

    Gibt es grundlegende Probleme zu beachten?

    Same Origin Policy?

    Ist die Seite im Frame von derselben Domain? Falls nicht, geht's nicht.

    cu,
    Andreas a/k/a MudGuard

    1. Danke für Deine Antwort. Ist alles Localhost und nichts Fremdes eingebunden. Es geht mir ausschließlich darum, ein Element aus dem Inhalt eines IFrames festzustellen, um dies für eine Weile anzeigen zu können und schließlich verblassen zu lassen.

      1. Hi,

        Danke für Deine Antwort. Ist alles Localhost und nichts Fremdes eingebunden.

        wirklich localhost per http, oder lokal per file:?

        letzteres könnte ein Problem sein (da bin ich mir nicht sicher, aber soweit ich mich erinnere, gibt's diverse Einschränkungen, wenn eine Seite vom lokalen Filesystem kommt statt von einem http-Server).

        Sonst fällt mir noch ein: ist zu dem Zeitpunkt, zu dem Du das Element im iframe holen willst, die Seite im iframe schon geladen? Aus dem angegebenen Code geht nicht hervor, wann der ausgeführt wird ...

        Was sagt eigentlich die Konsole des Browsers zu Deinen Versuchen?

        cu,
        Andreas a/k/a MudGuard

        1. Hi, ok localhost, weil ich mit PHP arbeiten und dafür Apache also xampp eingerichtet ist. In der index.php soll natürlich nach dem IFrame-Aufruf JavaScript ein Element des IFrame-Inhaltes abfragen und das zu erst auf Existenz, sonst brauche ich an diesem Vorhaben garnicht weiter zu machen.

          Eine Abfrage ergibt Null anstatt [objectHTMLQuoteElement]. So komme ich also nicht weiter.

          Aus den Inhalten des IFrames Variablenwerte an parent/top also der index.php zu übergeben und gegebenenfalls wieder bei Bedarf abzufragen, ist ja kein Problem. Nur umgedreht sehe ich nur Mauern um mich und kein Licht.

          Ein IFrame nutze ich nur zu dem Zweck, unabhängig von Seitenaufrufen innerhalb der referierten Aufrufe, nicht alle Werte auf Anfang setzen zu lassen. PHP in der main.php also dem Inhalt des Fensters beeinflusst ja nichts im Elternfenster. Das nur zur Erklärung.

          Tja, das sieht alles nicht gut für mich aus. Viele Grüße aus Schönebeck an der Elbe.