Information des Hauptfensters im iFrame auslesen.

thpe

Grünschnabel
Hallo zusammen,

ich stehe vor dem Problem für eine Webanwendung ein Reporting aufzusetzen ohne direkt Änderungen an dieser Anwendung, sprich dem Quelltext, durchzuführen. Ich kann nur mittels HTML-Statements Informationen einfügen (somit auch iFrames), welche das Content Management System dann abbildet.

Meine Idee war jetzt, einen iFrame einzufügen und von einem anderen Server eine Seite dort anzuzeigen. In diesem iFrame sollen dann Statements ausgeführt werden, welche mir den Titel der Hauptseite, den Inhalt der Adresszeile und eine bestimmte Stelle aus dem Quelltext der Hauptseite liefern sollen.

Beispiel Hauptseite (In der Adresszeile des Browsers steht (http://Test):
<html>....
<title>Test1</title>
....
<!-- begin header navigation area --> Test2 <!-- end header navigation area -->
...
<iframe src="Nebenseite"></frame>
</html>

Beispiel Nebenseite:
<html>
<script type="text/javascript">
?
</script>
</html>


Also an der Stelle der ? würde ich gerne Statements ausführen die die Werte Test (Adresszeile des Browserfensters), Test1 (Titel des Browserfenster, muss nicht unbedingt aus dem Quelltext sein) und Test2 (Einige Wörter, welche sich genau zwischen den beiden hier abgebildeten Kommentaren befinden) des Hauptfensters auslesen. Ich habe bereits versucht mit window.name usw. usw. an die Werte zu kommen. Aber es klappt irgendwie nicht. Und ob ich Informationen des Quelltextes aus dem Hauptfenster auslesen kann, bin ich mir nicht sicher.

Irgendwer hier Erfahrungen/Ideen?

Danke & Gruß
Thomas
 
Da die Seite in dem iFrame auf einem anderen Server liegt, hast du damit keine Möglichkeit, auf das Elterndokument zuzugreifen.

Darfst du in die Elternseite denn ein externes Skript einbinden?
Damit wäre soetwas nämlich kein Problem :)
 
Naja, ist halt ein Content Management System und ich kann immer eine Überschrift und eine Freitextfeld befüllen. Somit sollte es theoretisch möglich sein, auch dort javascript einzufügen. Welche Idee schwebt dir den vor?

Ah ich habe eine Idee. Ich könnte die Datei aber als Statisches Dokument in dem Webserver hochladen und dann mit iFrame anzeigen. Dann würde es ja auf dem selben System durch den selben Webserver angezeigt. Wäre das einfacher?
 
Ich hab auch ein anderen Idee. Vielleicht kannst Du die Hauptseit als statische Text-datei in JS ablesen und bearbeiten? Nämlich eine Kombination von fopen() und reguläre Ausdruck, um Texte zu finden.
 
Beide Ideen sind nicht schlecht. Aber wie komme ich an den Inhalt der Adresszeile, wenn ich per js mir den gesamten Text sauge oder diesen Sende-Trick benutze?
 
Okay, sehr schön. Zwei sind geschafft.

Adresse = parent.location.href;
Titel = parent.document.title;

Aber wie komme ich jetzt an den Rest? Ich möchte ja gerne noch alle Inhalte zwischen den beiden Kommentaren haben.

<!-- begin header navigation area --> Test2 <!-- end header navigation area -->

Muss ich mir wirklich jetzt die ganze Seite laden und diese nach regulären Ausdrücken durchsuchen. oder kann ich vielleicht die Seite so durchsuchen, weil der Browser sie ja schon geladen hat?

Gruß
 
Code:
parent.document.getElementsByTagName('html')[0].innerHTML
...liefert dir den Inhalt der <html>-Tags als String, den kannst du dann nach Gusto verarbeiten.
 
Hallo,

danke für die schnelle unf super Hilfe. Aktuell sieht das Ergebnis so aus:
var Adresse = parent.location.href;
var Titel = parent.document.title;
var Text = parent.document.getElementsByTagName('html')[0].innerHTML
var Num = Text.search(/BEGIN BREADCRUMB/);
var Nam = Text.search(/END BREADCRUMB/);
var Extrakt = Text.slice(Nim, Nam);

document.write (" " + Adresse + "<br>");
document.write (" " + Titel + "<br>");
document.write (" " + Extrakt + "<br>");

der Inhalt von "Extrakt" sie so aus:

"<a href="/portal/site/TMobile/menuitem.xy/?vgnextoid=xy">Home</a> >
<a href="/portal/site/TMobile/menuitem.xy0/?vgnextoid=xy">Tarife & Preise</a> >
Weitere Tarifinformationen"

oder z.B.

""<a href="/portal/site/TMobile/menuitem.xy/?vgnextoid=xy">Home</a> >
<a href="/portal/site/TMobile/menuitem.xy0/?vgnextoid=xy">Tarife & Preise</a> >
<a href="/portal/site/TMobile/menuitem.xy/?vgnextoid=xy">Home</a> >
<a href="/portal/site/TMobile/menuitem.xy0/?vgnextoid=xy">Tarife & Preise</a> >
Weitere Tarifinformationen"

Es könne also zwischen 0 und n Links drin stehen.

Ich habe schon mit einigen regulären Ausdrucken und for-Schleifen probiert und komme einfach nicht dran. Ich möchte gerne nur die roten Ausdrücke in einer Liste haben. Hat ihr jemand eine Idee bzw. dann mir helfen?

Danke & Gruß
Thomas
 

Neue Beiträge

Zurück