Siegie: Menüsteuerung mit mouseover-effekten & onclick-funktionsaufrufen, IE = OK , NN =

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

  1. 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

    1. 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

      1. 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.

        1. 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.

      2. 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

        1. 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.

          1. 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

  2. Moin
    Soweit ich informiert bin konnen bei Netscape im <td>Tag keine
    Mouseereignisse ausgelöst werden, sondern nur in <a>Tag.

    Nico

  3. 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!