heike: inhalt eines iframes/objects

Hallo,

koennt ihr mir helfen?
Ich habe folgendes Problem:
Ich moechte den Inhalt eines iframes oder objects in ein document einlesen.
Dies funktioniert unter ie, aber nicht unter ns6
Beim ie mache ich es so:

<iframe name="metatest" style="position:relative;
  display:none;" src="test.htm"></iframe>

JS:
var content = parent.document.metatest.document.body.innerHTML;

Nur eben im NS6 bekomme ich es nicht hin.

Danke Heike

  1. Hallo Heike,

    frames auslesen ist böse (content-grabbing), daher gibt es Sicherheitseinstellungen beim Netscape UniversalBrowserRead und UniversalBrowserWrite.
    Ausserdem hat der Netscape6 nicht document.body, das ist IE-Mist.
    Da inzwischen viele Browser DOM2 voll unterstützen, verwende diesen W3C-Standard auch richtig.
    Das wäre allLayers=new Array;allLayers=document.getElementsByTagName("*") entpricht dann document.all.
    allBodys=document.getElementsByTagName("BODY");
    allDIVS=document.getElementsByTagName("DIV");

    document.getElementById entpricht ähnlich find(), sucht also nach einer ID in allen Elementen, daher kann es auch mal langsamer sein als document.all oder die angegebene Array-Variante.

    Viel Erfolg

    Michael

    1. Hallo Micahel,

      wie mache ich das denn dann, wenn ich auf den Inhalt zugreifen moechte.
      Also wenn ich ein <object> vonm Typ text/html habe.

      ich finde es mit document.getElementsByTagName("object")[0].?????
      so kann ich z.B. auf den Namen oder die Data URL zugreifen,
      aber ich komme an den HTML-Inhalt nicht ran.

      Danke Heike

      Hallo Heike,

      frames auslesen ist böse (content-grabbing), daher gibt es Sicherheitseinstellungen beim Netscape UniversalBrowserRead und UniversalBrowserWrite.
      Ausserdem hat der Netscape6 nicht document.body, das ist IE-Mist.
      Da inzwischen viele Browser DOM2 voll unterstützen, verwende diesen W3C-Standard auch richtig.
      Das wäre allLayers=new Array;allLayers=document.getElementsByTagName("*") entpricht dann document.all.
      allBodys=document.getElementsByTagName("BODY");
      allDIVS=document.getElementsByTagName("DIV");

      document.getElementById entpricht ähnlich find(), sucht also nach einer ID in allen Elementen, daher kann es auch mal langsamer sein als document.all oder die angegebene Array-Variante.

      Viel Erfolg

      Michael

  2. Hallo,

    koennt ihr mir helfen?
    Ich habe folgendes Problem:
    Ich moechte den Inhalt eines iframes oder objects in ein document einlesen.
    Dies funktioniert unter ie, aber nicht unter ns6
    Beim ie mache ich es so:

    <iframe name="metatest" style="position:relative;
      display:none;" src="test.htm"></iframe>

    JS:
    var content = parent.document.metatest.document.body.innerHTML;

    Nur eben im NS6 bekomme ich es nicht hin.

    Danke Heike

    objects geht nicht.
    iframes NS6:
    Du solltest den iframe mit einer id Kennzeichnen: <iframe id="metatest" ..></iframe>
    Zugegriffen wird dann mit
    document.getElementById('metatest').contentDocument.body.innerHTML
    bzw.
    parent.document.getElementById('metatest').contentDocument.body.innerHTML
    Übrigens darf der iframe NICHT das Styleattribut display:none besitzen!!!!!!!!!!!!!