molily: Opera6, was ist so schwer an target="iframe" zu verstehen ?

Beitrag lesen

Hallo, xnetworkx!

also ich glaube, daß am Code nichts ungewöhliches ist .

Naja, der Code ist zwar für dich nicht ungewöhnlich, aber im Vergleich mit geltenden Standards ist er mehr als ungewöhnlich, besser gesagt fehlerhaft. :)

Ich habe mal eine Musterlösung erarbeitet, vielleicht sagt sie dir zu, ansonsten scheine ich dich missverstanden zu haben. Ich verstehe auf jeden Fall nicht die Logik, die hinter dem Öffnen des Fensters steckt.

Erstmal ein Fehler:

Fenster = window.open("fotos_auswahl.html","Zweitfenster","width=145, height=400, resizable=yes, scrollbars=yes")

Du darfst keine Leerzeichen im 'window features'-Parameter ("width=400...") verwenden. Lies mal http://dcljs.de/faq/antwort.php?Antwort=fenster_winopen.

Nun zur Musterlösung. Der Code ist auf Nötigste begrenzt und deswegen natürlich nicht standardkonform, ich habe das unwichtige herausgekürzt.

So, erst einmal die Stammdatei, in der das Inner Frame erscheint. Ich habe sie base.html genannt:
--8<--
<html>
<body>
<iframe src="eins.html" name="iframe" scrolling="no" frameborder="1" width="640" height="480">Alternativtext bei ausgeschalteten Frames (logischerweise ein <a href="eins.html">Alternativlink</a>)</iframe>
</body>
</html>
-->8--
Beachte name="iframe".

eins.html ist die Datei, die im Inner Frame anfangs angezeigt wird.
--8<--
<html>
<head>
<script type="text/javascript">
function oeffnen()  {
 fenster=window.open("zwei.html", "zweitfenster", "width=320,height=200,resizable=yes,scrollbars=yes");
}
</script>
</head>
<body onload="oeffnen();">
<p><a href="zwei.html" onclick="oeffnen(); return false;">Alternativlink: Auswahlfenster öffnen</a></p>
</body>
</html>
-->8--

Diese Seite öffnet durch den Event-Handler onload das Fenster. Hier könnte auch eine Fehlerquelle bezüglich Opera liegen, denn bei Opera kann man eine Seite verbieten, per onload Fenster zu öffnen. Überprüfe doch einmal dahingehend deine Einstellungen (Schnelleinstellungen mit der Taste [F12] oder unter Einstellungen->Fenster->Fenster für Webseiten->Öffnen neuer Fenster). Deswegen habe ich den Alternativlink eingefügt, auf onload kann man sich nicht vertrauen.

Nun zwei.html, welche die Seite ist, die in dem geladenen Fenster angezeigt wird.
--8<--
<html>
<body>
<a href="bild1.html" target="iframe">Bild 1</a><br>
</body>
</html>
-->8--

Als target wird hier einfach iframe angegeben. Seltsamerweise funktioniert es so - ich hätte auf _parent getippt. :-)
Wenn man also nun im Popup den Link klickt, wird im inner frame des Hauptfensters die gewünschte Seite geöffnet. So wolltest du es doch, oder?

Zum Schluss noch das Listing von bild1.html, welches nur eine Beispielseite ist, damit man merkt, dass sich die Seite im Frame auch wirklich verändert.
--8<--
<html>
<body>
bild1.html
</body>
</html>
-->8--

Obiges habe ich mit Opera 6.0, IE 6.0 und K-Meleon 0.6 getestet. (K-Meleon ist Gecko-basiert, d.h. auf Netscape und Mozilla dürfte es auch funktionieren.)

Ich hoffe, dir geholfen zu haben... auch wenn ich dir raten würde, diese seltsame Navigation, welche aus einer Kombination von Popups und Inner Frames besteht, einfacher zu gestalten. :)

Grüße,
Mathias