Hallo,
<div id="content5" ...>
<iframe id="iexplorer6" src="...>in "src-Seite"
>>on click: " Spucke id des übergeordneten divs aus!"<<</iframe>
</div>
Die Lösung ist etwas komplizierter, ich habe hier mal ein Beispiel geschrieben, das sowohl im Firefox, Opera und Konqueror funktioniert (IE habe ich gerade keinen da, müsste dort aber auch funktionieren).
Äußere Seite:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset="ISO-8859-1">
<title>Äußere Seite</title>
</head>
<body>
<div id="content5">
<iframe id="iexplorer6" src="beispiel-innen-1.html" width="500" height="500">
</iframe>
</div>
</body>
</html>
Innere Seite:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset="ISO-8859-1">
<title>Äußere Seite</title>
<script type="text/javascript">
[code lang=javascript]function zeigeIdAn (object) {
// ok, das ist doof, wir sind gar nicht in einem frame geladne
if (parent == self) {
object.innerHTML = "Nicht in einem Frame geladen.";
}
var iframes = parent.document.getElementsByTagName ("iframe");
for (var i = 0; i < iframes.length; i++) {
if (iframes[i].contentDocument == document) {
object.innerHTML = "ID des divs: " + iframes[i].parentNode.id;
return;
}
}
object.innerHTML = "ID konnte nicht ermittelt werden!";
}
</script>
</head>
<body>
<p onclick="zeigeIdAn (this);">Hier wird die ID angezeigt - bitte clicken.</p>
</body>
</html>[/code]
Der Trick ist folgender: Ich kann (wenn die Same Origin Policy mir das nicht verbietet) auf das Elternfenster zugreifen. Dann weiß ich aber nicht, welches DOM-Element das zugehörige IFrame ist. Also gehe ich alle IFrames auf der Seite durch und suche das IFrame, dessen contentDocument (damit könnte ich vom Elternframe auf das Kindframe zugreifen) gleich meinem eigenen document ist - und dann habe ich das entsprechende IFrame gefunden und kann mich dann von dort mittels parentNode & Co im DOM-Baum der Elternseite hochhangeln.
Ist jetzt nur ein Schnellschuss - Browserkompatibilität muss natürlich noch überprüft werden, aber an sich müsstest Du mit diesem Ansatz zum Ziel kommen.
Viele Grüße,
Christian