Hilfe! - [ ImageMap Problem mit onMouseOut u. onClick ]
Daniel Zander
- javascript
Hallo Forumteilnehmer,
habe 2 Probleme mit folgender ImageMap + Javascript(Auszug):
----> INFO : 2 Bilder mit Namen "a"=Bild zum jew. Bereich und "b"=Navigation
<img name="a" src="start.gif" width="100" height="20">
<img name="b" src="nav1.gif" width="200" height="20" usemap="#Map" border="0">
----> INFO : die Map als Navigationsleiste
<map name="Map">
<area target="main" shape="rect" coords="10,5,21,16" href="start.html"
onMouseOver="b.src='nav1.gif';" onMouseOut="oldnav();" onClick="clk1();">
<area target="main" shape="rect" coords="40,4,51,16" href="ueber.html"
onMouseOver="b.src='nav2.gif';" onMouseOut="oldnav();" onClick="clk2();">
</map>
----> INFO : Funktion bei onClick
function clk1()
{
document.a.src = "start.gif";
}
function clk2()
{
document.a.src = "ueber.gif";
}
----> INFO : Funktion bei onMouseOut
function oldnav()
{
var analyseframe = parent.main.location.pathname;
switch (analyseframe)
{
case:
if (analyseframe = "start.html")
document.b.src = "nav1.gif";
break;
case:
if (analyseframe = "ueber.html")
document.b.src = "nav2.gif";
break;
default:
document.b.src = "nav1.gif";
break
}
Meine Fragen:
zu onClick
Warum funktioniert die Anweisung "onClick="a.src='start.gif';" im area-tag direkt, aber die Funktion
von nicht?! Muss es aber wg. dem Bug vom NS-Mac per Funktion machen.
zu onMouseOut
Ich moechte anhand der analyse des Hauptframes "main" die Navigationsleiste immer im bezug
zum Inhalt des main-frames haben. Damit der User anhand der Navigationsleiste erkennt,wenn er mit
Maus wieder vom Link geht, wo er gerade ist.
Was mache ich falsch? (Bestimmt zuviel, ich geb mir gleich die Kugel, hab schon stundenlang self-
html, archiv, forum durchforstet.)
Den, der mir helfen kann, liebe ich jetzt schon.
Gruss, trauriger Daniel
Hallo Daniel,
mit JavaScript sprichst du Bilder im Dokument über
document.images['bildname']
an. Um das Bild durch ein anderes zu ersetzen also:
document.images['bildname'].src='bild2.gif';
Also:
function clk1()
{
document.images['a'].src = "start.gif";
}
function clk2()
{
document.images['a'].src = "ueber.gif";
}
Die Funktion oldnav() funktioniert nicht, weil du einen Fehler in der switch-Anweisung hast.
Außerdem enthält analyseframe den gesamten Pfad, nicht nur den Dateinamen.
Es muß heißen:
function oldnav()
{
var analyseframe = parent.main.location.pathname;
analyseframe=analyseframe.substring(analyseframe.lastIndexOf("/")+1,analyseframe.length);
switch (analyseframe)
{
case "start.html":
document.images['b'].src = "nav1.gif";
break;
case "ueber.html":
document.images['b'].src = "nav2.gif";
break;
default:
document.images['b'].src = "nav1.gif";
break
}
}
analyseframe.substring(analyseframe.lastIndexOf("/")+1,analyseframe.length)
holt einen Teilstring aus dem gesamten Pfad ab dem letzten Slash im Pfad.
Für weitere Fragen kannst du mir gerne mailen.
Gruß
Brigitte
Tausend Dank Brigitte !!!!
Das Problem mit dem NS 4.7 Mac habe ich herausgefunden!
Beim onClick-Event zeigt der Browser nur Images an, die
vorher in den Cache geladen wurden! Alle Anderen haben
damit kein Problem. NS mal wieder ;(
Eine Frage habe ich noch:
wie sage ich dem onMouseOut Befehl via setTimeOut das
er erst nach ca. 1 sec ausgefuehrt werden soll, damit
die Navigation beim ueberfahren mit der Maus nicht so
"zappelt" ?
Gruss Daniel