Dynamischer Bildertausch im Frameset mit Netscape
Horst Nogajski
- javascript
Hallo Forum.
Ich habe schon die ForumSuchmaschine durchforstet,
die ist echt gut, ist die Neu?! :-),
habe aber keinen passenden Hinweis auf meine Problematik gefunden.
Die Schreibweisen die im Forum benannt sind, sind exakt so wie die die ich verwende,
oder ich hab' was an den Augen).
Der InternetExplorer machts, der NetscapeNavigator nicht.
Das folgende JavaScript soll innerhalb eines (aus 2 Frames bestehenden)
FrameSets von Frame1 aus in Frame2 (name="picts") ein Bild (name="bild") tauschen.
(Das Frameset selber ist ein Frameset im Frameset, deshalb benutze ich "parent" und nicht "top").
HeadTeil:
function framesetbildwechsel(x,y){
var is_ziel = (parent.picts.document.bild!=-1);
if(is_ziel){
neuesbild = "../bilder/" + x + y + ".jpg";
parent.picts.document.bild.src = neuesbild;
parent.picts.focus();
document.images[y-1].border = 3;
}
}
BodyTeil:
<a href="javascript:framesetbildwechsel('a','1')">
<img src="../bilder/a1\_thumb.gif" border="0"></a>
Mit dem Funktionsaufruf werden die Parameter (x,y) zur Dateinamenerstellung
des Bildes "neuesbild" übergeben.
Dann wird geprüft, ob im Frame (name="picts") das Bild (name="bild")
überhaupt existiert.
Wenn JA:
- dann wird es getauscht,
- im Frame1 wird der angewählte Thumbnail mit einem Rahmen (border=3) versehen,
- und der Fokus wird auf das 2. Frame gesetzt.
So ist der Plan.
Warum klappts nicht mit dem Netscape Navigator??
Er tauscht nicht das Bild, er zeichnet nur das Rähmchen in der ersten Datei,
gibt aber auch keine Fehlermeldung aus.
Viele Grüße,
Horst Nogajski
Hi Horst,
stehen die zu wechselnden Bilder möglicherweise innerhalb eines via CSS positionierten DIVs? Das würde nämlich das Problem - so wie ich es verstanden habe - erklären. Und wenn ja: hier (<../../sfausles/tsfa_tbb.htm>) wäre dann die dazu passende Lösung.
Grüße,
Utz
Hi Horst,
stehen die zu wechselnden Bilder möglicherweise innerhalb eines via CSS positionierten DIVs?>
Grüße,Utz
Nein, es ist eine kleine Tabelle mit 2 Zellen, die direkt nach dem Body-Tag steht, (hinter der Tabelle stehen allerdings noch Div-Tags??):
<table width="587" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="bildtext" width="160" height="328" align="center">
<img name="thumbgif" border="0"
src="crossbilder/thumb1.gif" width="160" height="160">
Bildtext
</td>
<td width="425" height="328" align="center" valign="middle">
<img name="bild" border="0"
src="crossbilder/layout/transparent.gif">
</td>
</tr>
</table>
Ok, nächste Frage: Du referenziert für die Tabellenzellen eine Stylesheet-Klasse - wird dort eine Positionierung vorgenommen? Oder andersrum - lade die Seite im Netscape und klicke auf "Seiteneigenschaften" - werden dort Layer angegeben?
Grüße,
Utz
Hallo Utz,
vielen Dank fuer Deine Hilfe,
ich habe mittlerweile meinen Fehler gefunden:
Als erstes Bild in der Zieldatei wurde beim Oeffnen ein 1x1 Pixel grosses tarnsparentes Gif geladen,
wohlweislich OHNE GROeSSENANGABEN, weil ich dachte, das dann die nachgeladenen Bilder in ihren Hoch und Querformaten verzerrungsfrei gezeigt werden.
Was im InternetExplorer (den ich so liebe) auch so laeuft.
Nur der Netscape "merkt sich also Uebereifrigerweise" die Groesse des vorhandenen Bildes und passt die nachgeladenen Bilder an dieses Format an.
Er hat es also die ganze Zeit schon getan, ich habs nur nicht gesehen, auweia! :-(
Deshalb, -alle Bilder muessen dann doch das gleiche Groessenformat haben,
auch ohne Groessenangabe! Schade.
Gruss, Horst