steffen: Direktzugriff auf Images in Frames

[Falls auf dieses Problem schon in SelfHTML geantwortet wurde tut es mir sehr leid, aber ich habe es beim besten Willen nicht finden können:]

Eine Seite besteht aus zwei Frames (Beispielscript siehe unten).
Im ersten Frame stehen zwei Grafiken ("grafik" und
"foto", im zweiten ein Textlink.
Wenn ich nun den Textlink betätige, soll sich im ersten Frame EIN Image ("grafik") ändern - das andere soll bleiben, nicht nochmal mitgeladen werden.

Ohne Frames ginge das ja mit document.images["grafik"].src="xyz.gif"

Aber wie spreche ich die Grafik an, wenn sie in einem anderen Frame steht?

Danke, Steffen.

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html">

<script language="javascript"><!--
function wechsel() {
 // hier soll dann der img-Wechsel über ".src=" definiert werden
}

function tag(s) {
return "<"+s+">"
}

function leer() {
html=tag("html")+tag("body bgcolor='#ffffff'")+tag("/body")+tag("/html")
return html
}

function text(s) {
html=tag("html")+tag("body")
html+=tag("a href='#' onMouseOver='javascript:top.wechsel()'")
html+=tag("h1")+s+tag("/h1")
html+=tag("/a")
html+=tag("/body")+tag("/html")
return html
}
function bild(s) {
html=tag("html")+tag("body bgcolor='#ffffff'")
html+=tag("img src='"+s+"' width=300 height=300 border=0 name='grafik'")
html+=tag("img src='"+"foto.gif"+"' width=300 height=300 border=0 name='foto'")
html+=tag("/body")+tag("/html");
return html
}
//--></script>
</head>

<frameset rows="310,*" border=0 frameborder=0 framespacing=0>
 <frame name="map" src="javascript:top.bild('grafik.gif')" frameborder=0 noresize>
 <frame name="towns" src="javascript:top.text('stadt')" frameborder=0 noresize>
</frameset>

<noframes>
<body  bgcolor="#FFffff" alink="#FF0000" vlink="#000000" link="#000000">
<p> </p>
</body>
</noframes>

</html>

  1. Hallo!

    Ohne Frames ginge das ja mit document.images["grafik"].src="xyz.gif"

    Aber wie spreche ich die Grafik an, wenn sie in einem anderen Frame steht?

    Ich hab es nicht getestet, aber versuch mal parent.frames.framename.images["grafik"].src="xyz.gif".

    framename = Name des Frames mit den Bildern drin.

    Oder hast du die Funktion im gleichen Frame wie die Bilder? dann kannst du mit parent.frames.framename.functionname() diese Funktion ansprechen.

    framename = Name des Frames mit den Bildern drin.
    functionname = Name der JavaScript-Funktion, die den Bildwechsel macht.

    Gruss, sprain