Menüsteuerung mit mouseover-effekten & onclick-funktionsaufrufen, IE = OK , NN =
Siegie
- javascript
Hallo Forum ...
bin meiner Suchverpflichtung vor Fragestellung nachgegangen, aber nicht
definitiv fündig geworden!
Problem :
Möchte mir eine Menüsteuerung aufbauen , die überwiegend mit dem MOUSEOVER reagiert.
Unter dem IE funkts wunderbar aber mit dem NN gibts mächtige Probleme.
Wie gesagt, bei mouseover soll das Masterimage durch das zugeornete Image ersetzt
werden und zugleich erhält die aktive Tabellenzelle eine andere Hintergrundfarbe.
Die entsprechende Tabellenzelle wird dabei durch die ID (siehe Beispiel) angesprochen.
Bei OnClick sollen nun noch die zugewiesenen Funktionen ausgeführt werden.
Alles OK beim IE, aber wie bringe ich den NN dazu, dasselbe zu machen ?
Bitte um Tips
Gruß Siegie
<script language="JavaScript">
<!--
High0 = new Image(); High0.src = "images/sport.GIF"; /* NormalImage */
High1 = new Image(); High1.src = "images/homepage.gif";
High1.idx = "def_idx.htm";
High1.dsk = "def_desk.htm";
High2 = new Image(); High2.src = "images/badminton.gif";
High2.idx = "badminton/index.htm";
High2.dsk = "badminton/desk_bm.htm";
function Bildwechsel(ImgPosInDoc,ImgObjNr,CellId,ActiveItem) {
curs = false;
gelb = "#ffff00";
grun = "#66ff66";
weis = "";
grau = "#e5e5e5";
switch(ActiveItem) {
case 0 : ActiveCol = grau; break; /* Item ist inaktiv */
case 1 : ActiveCol = gelb; curs = true; break; /* Item ist aktiv */
case 2 : ActiveCol = grun; curs = true; break; /* Item Sonderfarbe */
case 9 : ActiveCol = weis; break; /* PageBackgroundCol */
default: ActiveCol = weis; break; }
window.document.images[ImgPosInDoc].src = ImgObjNr.src;
window.document.all[CellId].style.backgroundColor=ActiveCol;
if (curs) window.document.all[CellId].style.cursor="hand";}
function loadFrames(fstate,ImgObjNr) { /* Index und Desktop laden */
switch(ImgObjNr) {
case 1 : Zieli = High1.idx; Zield = High1.dsk; break;
case 2 : Zieli = High2.idx; Zield = High2.dsk; break;
default : Zieli = ""; Zield = ""; }
if (fstate == "i") parent.frames[1].location.href= Zieli;
if (fstate == "d") parent.frames[2].location.href= Zield;
if (fstate == "id") { parent.frames[1].location.href= Zieli;
parent.frames[2].location.href= Zield; }
}
//-->
</script>
body ....
<tr>
<td id="Z01" width="166" height="16"
onmouseover="Bildwechsel(0,High1,'Z01',2)"
onmouseout="Bildwechsel(0,High0,'Z01',9)"
onclick="loadFrames('id',1)"><font face="MS Sans Serif" size="1"> <b>HOMEPAGE</b></font></td>
</tr>
...
EOF
Hallo
ein IE problem, du benutzt Microsoft "standards"
...
window.document.all[CellId].style.backgroundColor=ActiveCol;
if (curs) window.document.all[CellId].style.cursor="hand";}
und das einzige problem, wenn ich das richtig überschaue ist das document.all, d.h. der Zellhintergrund. darauf müßtest du im NN verzichten.
Außerdem nicht:
<script language="JavaScript">
<!--
sondern
<script language="JavaScript1.2">
<!--
ich werd bei so seiten immer mit fehlermeldungen zugeschissen, weil mein browser nur Javascript1.1 kennt.
Struppi
Hallo
ein IE problem, du benutzt Microsoft "standards"...
window.document.all[CellId].style.backgroundColor=ActiveCol;
if (curs) window.document.all[CellId].style.cursor="hand";}
und das einzige problem, wenn ich das richtig überschaue ist das document.all, d.h. der Zellhintergrund. darauf müßtest du im NN verzichten.Außerdem nicht:
<script language="JavaScript">
<!--
sondern
<script language="JavaScript1.2">
<!--
ich werd bei so seiten immer mit fehlermeldungen zugeschissen, weil mein browser nur Javascript1.1 kennt.Struppi
Hi Struppi,
nicht nur der Zellhintergrund sondern auch die dynamischen Images werden beim NN nicht aufgebaut. Es ist, als ob er mouseover nicht kennen würde.
Siegie
Hi Siegie
du mußt den browser abfragen und bei den zeilen
window.document.all[CellId].style.backgroundColor=ActiveCol;
if (curs) window.document.all[CellId].style.cursor="hand";}
irgendsowas wie if(document.all) davor setzten. die neueren browser zeigen keine javascriptfehler mehr an. IE 5.0 nur klein in der statusleiste und NN 4.x zeigt die fhler an, wenn man in der adressleiste "javascript:" eingibt. und da NN auf einen fehler trifft beendet er dort das skript, deshalb passiertr nix.
Struppi.
Hi Siegie
du mußt den browser abfragen und bei den zeilen
window.document.all[CellId].style.backgroundColor=ActiveCol;
if (curs) window.document.all[CellId].style.cursor="hand";}
irgendsowas wie if(document.all) davor setzten. die neueren browser zeigen keine javascriptfehler mehr an. IE 5.0 nur klein in der statusleiste und NN 4.x zeigt die fhler an, wenn man in der adressleiste "javascript:" eingibt. und da NN auf einen fehler trifft beendet er dort das skript, deshalb passiertr nix.Struppi.
Ok, ich versuchs mal.
Nochmal hallo,
grad seh ich's. das onmouseover ist in der tabellenzelle. ja, das geht natürlich nicht. alles microsoft was du benutz.
wenn du das wort HOMEPAGE mit einem <a href="" onmouseover ..usw.. umgibst, müßte es eigentlich funktionieren.(wie es nico schon geschrieben hat).
plus die abfrage if(document.all).
Struppi
Nochmal hallo,
grad seh ich's. das onmouseover ist in der tabellenzelle. ja, das geht natürlich nicht. alles microsoft was du benutz.
wenn du das wort HOMEPAGE mit einem <a href="" onmouseover ..usw.. umgibst, müßte es eigentlich funktionieren.(wie es nico schon geschrieben hat).
plus die abfrage if(document.all).Struppi
Super Struppi,
im "<a" Tag funzt das dynamische Imagewechseln mit "on..." auch mit dem NN, lediglich mit dem styles (background) muss ich noch rumdoktern.
bis bald. Siegie.
Hi
Bevor du noch stundnlang versuchst Netscape dazu zu bringen die Hintergrundfarbe einer Tabellenzelle zu aendern: Es geht nicht ;-((
Die einzige Hintergrundfarbe die du beim NS aendern kannst ist die Hintergrundfarbe eines layers.
Tschau Holger
Moin
Soweit ich informiert bin konnen bei Netscape im <td>Tag keine
Mouseereignisse ausgelöst werden, sondern nur in <a>Tag.
Nico
Hallöchen!
Tja, das ging wohl in die Hose!
Wollte sowas auch schon machen... Alles was mit on... beginnt wird vom Netscape nicht unterstützt. Leider.
Adios!