svverlag: Zelleninhalt in iframe auslesen

Hallo zusammen,

ich möchte einen bestimmten Zelleninhalt in einem iframe auslesen.
Mit dem Forum und anderen Seiten bin ich jetzt wie unten gepostet gekommen, weiss allerdings jetzt nicht mehr weiter.

-----------------------------------------------------------------
test1.htm:

<html>
<head>
<title>test1.htm</title>
<script type="text/javascript">

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all :
        oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/-/g, "\-");
    var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

function inhalt_zelle_gesucht() {
  var zelle_gesucht = getElementsByClassName((window.frames['myiframe'].document), "td", "suche_zelle");
  alert("Inhalt der gesuchten Zelle: " + zelle_gesucht);
}

</script>
</head>
<body>
<iframe name="myiframe" src="test2.htm"></iframe>
<br>
<a href="#" onClick="inhalt_zelle_gesucht()">Inhalt der Zelle anzeigen</a>
</body>
</html>

-----------------------------------------------------------------

test2.htm:

<html>
<head>
<title>test2.htm</title>
<body>
<table width="100%" border="0">
  <tr>
    <td class="suche_zelle">111</td>
  </tr>
  <tr>
    <td class="suche_nicht_zelle">222</td>
  </tr>
  <tr>
    <td class="suche_zelle">333</td>
  </tr>
</table>
</body>
</html>

-----------------------------------------------------------------

Ich erhalte allerdings immer nur die Meldung: [object HTMLTablecellelement]

Kann mir jemand einen "Schubs" geben?
Dank euch.

  1. Kann mir jemand einen "Schubs" geben?

    object.innerHTML

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  2. Hallo,

    Ich erhalte allerdings immer nur die Meldung: [object HTMLTablecellelement]

    eigentlich komisch, denn es sollte ja eher ein Array sein, das die Funktion zurück gibt. Mit dem IFrame hat das aber nichts zu tun, gelle?

    Gruß

    jobo

    1. Hallo,

      Ich erhalte allerdings immer nur die Meldung: [object HTMLTablecellelement]

      eigentlich komisch, denn es sollte ja eher ein Array sein, das die Funktion zurück gibt. Mit dem IFrame hat das aber nichts zu tun, gelle?

      Gruß

      jobo

      Sorry, da war ich zu ungenau. Es wir schon ein Array ermittelt. Die genaue Fehlermeldung lautet:
      Inhalt der gesuchten Zelle: [object HTMLTablecellelement],[object HTMLTablecellelement]

      An dem iframe sollte es nicht liegen, da ich mit
      getElementsByClassName(document, "td", "suche_zelle");
      und der Tabelle in test1.htm liegend, die gleiche Meldung erhalte.
      Mir ist vorallem nicht klar, wie ich das object.innerHTML definieren sollte.

      1. Hi,

        bitte sinnvoll zitieren - das, worauf du dich konkret beziehst, und nicht einfach alles.

        Sorry, da war ich zu ungenau. Es wir schon ein Array ermittelt. Die genaue Fehlermeldung lautet:
        Inhalt der gesuchten Zelle: [object HTMLTablecellelement],[object HTMLTablecellelement]

        Das ist keine Fehlermeldung, sondern einfach die Ausgabe, die du erhältst, wenn du ein HTML-Element (bzw. hier zwei) direkt mit alert o.ä. auszugeben versuchst.

        Du hast hier also bereits Zugriff auf eine sog. NodeList, die zwei Tabellenzellen-Elemente enthält - jetzt musst du dich nur noch für eins davon entscheiden. Das geht über einen nullbasierten nummerischen Index.
        zelle_gesucht enthält die NodeList, also greift zelle_gesucht[0] auf das erste Element darin zu.

        Mir ist vorallem nicht klar, wie ich das object.innerHTML definieren sollte.

        innerHTML ist eine Eigenschaft, die dir den HTML-Code innerhalb eines Elementes liefert - also denn Inhalt deiner Tabellenzelle inkl. der Tags aller Elemente, die sie enthält.

        zelle_gesucht[0].innerHTML - das liefert dir den Inhalt der ersten von den beiden Zellen, die du davor ermittelt hast.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. zelle_gesucht[0].innerHTML - das liefert dir den Inhalt der ersten von den beiden Zellen, die du davor ermittelt hast.

          » danke für die Hinweise. Funktioniert mit iframes auf der gleichen Domain wunderbar. Geht das auch mit iframes von anderen Domains?

          1. danke für die Hinweise. Funktioniert mit iframes auf der gleichen Domain wunderbar. Geht das auch mit iframes von anderen Domains?

            Nein.

            Struppi.

            1. Hi,

              danke für die Hinweise. Funktioniert mit iframes auf der gleichen Domain wunderbar. Geht das auch mit iframes von anderen Domains?

              Nein.

              Stichwort (ergänzend): Same Origin Policy.

              MfG ChrisB

              --
              Light travels faster than sound - that's why most people appear bright until you hear them speak.
      2. Hallo,

        An dem iframe sollte es nicht liegen, da ich mit
        getElementsByClassName(document, "td", "suche_zelle");
        und der Tabelle in test1.htm liegend, die gleiche Meldung erhalte.
        Mir ist vorallem nicht klar, wie ich das object.innerHTML definieren sollte.

        alerte doch mal die innerHTML-Eigentschaft, allerdings musst du da dann erstmal eins der Arrayelements auswählren resultCells[0].innerHTML oder so ähnlich.

        Gruß

        jobo