Zelleninhalt in iframe auslesen
svverlag
- javascript
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.
Kann mir jemand einen "Schubs" geben?
object.innerHTML
mfg Beat
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
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.
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
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?
danke für die Hinweise. Funktioniert mit iframes auf der gleichen Domain wunderbar. Geht das auch mit iframes von anderen Domains?
Nein.
Struppi.
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
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