Zugriff verweigert für opener.document.forms[0]....
Rene Krause
- javascript
Hi,
obwohl ich die thematisch ähnlichen Beiträge in den Archiven studiert habe, komme ich auf keinen grünen Zweig mit folgendem Problem:
Vom Haupt-Fenster (und dort frames[0]) öffne ich ein PopUp-Fenster.
Von dort möchte ich einen Formularwert aus frames[0] überprüfen:
if(opener.document.forms[0].elements[0].value=="hallo")
...
Beim Ausführen der Funktion bringt JS den Fehler "Zugriff verweigert".
Ist ein Lesen von Werten eines opener-window MIT Frames generell nicht möglich oder gibt es in meiner Abfrage einen Fehler?
Danke schonmal
René
Hallo,
Beim Ausführen der Funktion bringt JS den Fehler "Zugriff verweigert".
Ist ein Lesen von Werten eines opener-window MIT Frames generell nicht möglich oder gibt es in meiner Abfrage einen Fehler?
Dieser Fehler kommt normalerweise, wenn du versuchst, auf ein Dokument auf einem Anderen Server zuzugreifen. Liegen die Seiten auf verschiedenen Servern bzw. Protokollen?
Der Zugriff via JS auf ein Dokument von einem Anderen Server ist aus Sicherheitsgründen nicht möglich.
Robert
http://www.designauswahl.here.de
mit kostenlosem Webseiten-Generator ROBE.dit
[more than a HTMLE.dit]
Der Zugriff via JS auf ein Dokument von einem Anderen Server ist aus Sicherheitsgründen nicht möglich.
Nein, erstens nur lokal, zweitens der selbe Server (localhost).
In einem ähnlichen Posting hat das auch angeblich nach dieser Methode funktioniert...
Was könnte das Problem sein?
René
Hallo,
Der Zugriff via JS auf ein Dokument von einem Anderen Server ist aus Sicherheitsgründen nicht möglich.
Nein, erstens nur lokal, zweitens der selbe Server (localhost).
In einem ähnlichen Posting hat das auch angeblich nach dieser Methode funktioniert...
Ich hab das mal nachgebaut:
(Gleich mal um Hinweisen vorzubeugen: ich bin mir bewusst das das nicht der beste HTML-Stil ist. Soll nur zum Test sein.)
Datei frameset.htm:
<html>
<head>
<frameset rows="100,*">
<frame src="frame1.htm">
<frame src="about:blank">
</frameset>
</head>
<body>
</body>
</html>
Datei frame1.htm:
<html>
<head>
</head>
<body>
<a href="javascript:void(open('datei2.htm','name',''));">Popup</a>
<form>
<input type="text">
</form>
</body>
</html>
Datei datei2.htm:
<html>
<head>
</head>
<body>
<script language="JavaScript">
<!--
document.write(opener.document.forms[0].elements[0].value);
//-->
</script>
<br />
ende
</body>
</html>
Wenn ich jetzt die Datei frameset.htm anzeige, im Eingabefeld im oberen Frame etwas eingebe und dann auf den Link klicke, wird im Popup-Fenster der Inhalt des Eingabefelds angezeigt.
Robert
http://www.designauswahl.here.de
mit kostenlosem Webseiten-Generator ROBE.dit
[more than a HTMLE.dit]
Ich glaube, das Problem liegt darin, dass das PopUp ausschließlich durch den Event-H. onUnload geladen wird. Obwohl ich ein timeSetout eingestellt habe, kann das Script sich nicht auf den neu geladenen Frame beziehen.
Letztlich will ich nur überprüfen, ob nach dem "Entladen" des Frames der Frame noch da ist oder nicht. Mit anderen Worten: ob nur neu geladen wurde oder ob eine gänzlich neue Seite geladen wurde.
Hast du noch eine Idee?
Danke
René
Hallo,
Ich glaube, das Problem liegt darin, dass das PopUp ausschließlich durch den Event-H. onUnload geladen wird. Obwohl ich ein timeSetout eingestellt habe, kann das Script sich nicht auf den neu geladenen Frame beziehen.
Das habe ich in meinem Test auch schon gemerkt: sobald sich die Seite im opener verändert, kann im PupUp nicht mehr darauf zugegriffen werden.
Letztlich will ich nur überprüfen, ob nach dem "Entladen" des Frames der Frame noch da ist oder nicht. Mit anderen Worten: ob nur neu geladen wurde oder ob eine gänzlich neue Seite geladen wurde.
Hast du noch eine Idee?
Öffne das PopUp vom anderen Frame aus. Dann kannst du überprüfen, ob du noch auf den Frame zugreifen kannst oder nicht. Wenn du nicht mehr zugreifen kannst, ist der Frame weg, wenn du noch Zugreifen kannst, solltest du evtl. noch andere Kriterien überprüfen (url, titel,...).
Das ist aber zugegebenerweise nicht gerade der schönste Stil.
Robert
http://www.designauswahl.here.de
mit kostenlosem Webseiten-Generator ROBE.dit
[more than a HTMLE.dit]