Nicholas Provart: verweigerter Zugriff mit window.document.all und Internet URLs

Hej!

Ich wuerde gern ein Stueckchen Text aus einem so mit Javascript geoeffneten Kind-Fenster...

externalinfos = window.open('http://URL','foo',toolbar=yes,directories=no,
location=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=no,width=850,height=574,top=18,left=164);
externalinfos.name = "bar";

...extrahieren. Theoretisch kann ich von dem Elternfenster aus meinen Text (hier den Inhalt von der 2. Tabelle des Kindfensters) mir dann so holen, z.B.:

<a href="javascript:alert('Der Inhalt der 2. Tabelle ist ' + externalinfos.document.all.tags('table')[1].innerText);">Inhalt der 2. Tabelle anzeigen</a>

Ich verwende IEX5 und wenn die URL Adresse lokal ist
(also, von einer sich auf unserem Server befindenen Seite) bekomme ich sehr schoen eine ALERT Nachricht mit
dem Inhalt von der 2. Tabelle, wenn ich auf den oben beschriebenen Verweis klicke....

Aber, und nu zum eigentlichen Problem...wenn die
Adresse (also, 'HTTP://URL' oben) im Internet sich befindet kann man zwar problemlos die Seite laden und anschauen (nix neues hier) aber wenn ich auf den Verweis 'Inhalt der 2. Tabelle anzeigen' klicke, also wenn ich versuche den Inhalt der 2. Tabelle im Kind-Fenster auszulesen, bekomme ich die Javascript Fehlermeldung 'Zugriff wurde verweigert!'.
(finde ich nicht logisch, da diese Internet Seite eigentlich wunderbar im Kind-Fenster geladen ist und die HTML Elemente alle da sind.)

Das gleiche passiert mit Netscape 4.0x (hier habe ich versucht externalinfos.document.title auszulesen, da Netscape doc.all nicht unterstutzt.)...mit local URLs keen Problem, mit Internet URLS schon. Ich meine, das Titel ist kein Geheimnis, oder?? Werden Zugriffsrechte von dem Server mit der jeweiligen Seite auch uebermittelt?

Ich habe SELFHTML und dieses Forum durchsucht (beide excellent, im Uebrigen) und nix konkretes jefunden. Ich hoffe, dass einer mir was dazu sagen kann!!

Cheers, Nick

  1. Hallo Nick

    Ich wuerde gern ein Stueckchen Text aus einem so mit Javascript geoeffneten Kind-Fenster...

    Werden Zugriffsrechte von dem Server mit der jeweiligen Seite auch uebermittelt?

    http://msdn.microsoft.com/workshop/author/om/xframe_scripting_security.asp

    Viele Grüße

    Antje

  2. Antje hat mich daraufmerksam gemacht, dass dieses gar nicht gehen kann, und zwar aus Sicherheitsgrunden (Browser Security Model). Sie hat mich auch draufmerksam gemacht, dass so was doch geht, und zwar mit IE5 und HTA (HTML Application). Hier wuerde man quasi ein Frameset entwerfen, und bei den FRAME tags folgendes hinfuegen:

    <frame src="links.htm" name="left" application="yes">

    'Application="yes"' sagt dem Browser, dass die Seite, die in die linke Frame geladen wird, nicht unter dem Browser Security Model steht. Man muesste dann einfach diese Frameset-Datei eine .hta Endung geben (anstelle von .htm) und voila.

    Das heisst, dass man dan wirklich mit so was:

    <a href="javascript:alert('2. Tabelle in der rechten Frame hat folgenden Inhalt ' + parent.right.document.all.tags('table')[1].innerText);">1</a>

    den Inhalt von der 2. Tabelle auslesen kann, egal ob die Seite Internet oder Intranet ist!

    Vielen Dank Antje! Ciao, Nick