Zugriff auf Frames verweigert (per parent['framename'].location.href)

ZodiacXP

Erfahrenes Mitglied
Hallo. Ich steh vor einem total blöden bescheuerten Problem.
Erstmal meine 2 HTML-Dateien:

HTML:
<html>
<head>
<frameset rows="86,*" border="0" framespacing="0" frameborder="0">  
	<frame src="top.htm" name="redirect" noresize scrolling="NO">
	<frame src="http://DesertOfGlow.com" name="dogred" noresize scrolling="auto">
</frameset>
</head>
</html>

Und das hier ist die dazugehörige "top.htm" aus dem selben Verzeichnis.

HTML:
<html>
<head>
<script type="text/javascript">
	function checkFrame() {
		var tst = parent['dogred'].location.href;
		alert(tst);
	}
</script>
</head>
<body onLoad="checkFrame();">

</body>
</html>

Mein Problem ist jetzt das es mir "verweigert wird" (laut Firefox) auf den unteren Frame zuzugreifen. Selbst wenn der untere Frame komplett geladen ist kann ich nicht drauf zugreifen.

Wodran könnte das liegen?
 
Das liegt höchstwahrscheinlich daran, dass das Dokument im unteren Frame zu einer anderen Domain gehört als das Dokument mit dem Skript.

Domainübergreifender Zugriff ist in JS nicht gestattet.

Du kannst lediglich das src-Attribut des Element-Objektes "frame" auslesen... das dürfte dir aber nicht viel nützen, da sich dieses nicht ändert, wenn man bspw. per Link in dem entsprechenden Frame navigiert.
 
var tst = parent.frames[1].src;

da wird mir undefined gesagt aber kein fehler ausgegeben


möp... Man nehme statt der Framesets einen iframe. Dann kann mans mit getElementByID("Die_ID_vom_IFrame").src auslesen. Mah. Wieso komm ich dadrauf nich eher?
 
Das hat nichts mit dem iFrame zu tun, sondern wie du das Element ansprichst.

Per document.getelementById(....).src sprichst du ein Element-Objekt und dessen HTML-Attribut "src" an.... mit
parent.frames...location jedoch ein window-Objekt und dessen Javascript-Attribut "location" an.

Das sind grundsätzlich unterschiedliche Dinge... Variante 1 funktioniert auch mit normalen Frames, wie du feststellen wirst(wenn du willst:))
 

Neue Beiträge

Zurück