Andreas: Ebene verbergen bei onMouseOut mit Netscape 4.x

Hallöchen!
Habe 2 Ebenen übereinander, auf der hinteren ist ein Text, die vordere ist nur dazu da, um bei onMouseOut ein javascript aufzurufen, welches beide Ebenen verbirgt. Das klappt im IE und NN 6... super, aber mal wieder im NN 4.x nicht. Hat jemand ne Idee, wie ich es schaffe, das auch im Netscape bei onMouseOut der Ebene beide verschwinden. Die vordere ist im prinzip nur eine Notlösung, da sobald die Maus über Text auf der Ebene kommt, das als onMouseOut registriert wird. Vielleicht habt Ihr ja noch eine bessere Idee! Angucken kann man sich das unter http://knet-systems.de/test/test.htm
Ich hätte auch die Möglichkeit, über PHP ein vollkommen anderes Javascript für den NN4.x auszugeben, wenigstens den Browser wird man wohl erkennen können ;-)

Viele Grüße
Andreas

  1. hi
     versuch es mal mit dem Beispiel.

    if(document.layers)
     { ns=1; ie=0; } else { ns=0; ie=1; }

    function init() {
     if(ns) ebene=document.nameLayer;

    funczion zeige(obj) {
     obj.visibility = "show";
    }

    function verberge {obj) {
     obj.visibility = "hide";
    }

    Viele Grüße
    volcona

    1. Hallo!

      Vielen Dank! Aber wie rufe ich die Funktionen aus? Mein Problem war ja, das der onMouseOut Befehl in einer Ebene nicht funktioniert, mit einem Link geht meine Version auch im NN 4.x.

      Hier ist das Problem: Mit IE... gehts, mit NN 4.7 nicht:

      <div id="layer" style="position:absolute; left:19px; top:48px; width:102px; height:148px; z-index:2; visibility: hidden" onMouseOut="ShowHideMenue('Menue','','hide','layer','','hide')"></div>

      Selbiger Aufruf in einem <a> - Tag geht, auch im NN 4.x!!!

      Viele Grüße
      Andreas

      if(document.layers)
      { ns=1; ie=0; } else { ns=0; ie=1; }

      function init() {
      if(ns) ebene=document.nameLayer;

      funczion zeige(obj) {
      obj.visibility = "show";
      }

      function verberge {obj) {
      obj.visibility = "hide";
      }

      1. Hier ist das Problem: Mit IE... gehts, mit NN 4.7 nicht:
           <div onMouseOut="..."></div>
        Selbiger Aufruf in einem <a> - Tag geht, auch im NN 4.x!!!

        http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#allgemeines
        http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onmouseout

        1. Hier ist das Problem: Mit IE... gehts, mit NN 4.7 nicht:
             <div onMouseOut="..."></div>
          Selbiger Aufruf in einem <a> - Tag geht, auch im NN 4.x!!!

          http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#allgemeines
          http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onmouseout

          Vielen Dank für die Links, genau das hatte ich schon selbst festgestellt. Daher auch dieser Thread - wie kann man das sonst lösen?

          Zur Aufgabenstellung:

          Ich will ein Aufklappmenü erstellen, d.h. ich habe einen Link, und wenn man mit der Maus darüberfährt, soll eine Liste mit Links darunter erscheinen, die man anklicken kann. Im Prinzip kann ich das ja, nur habe ich noch keine(auch im Netscape 4) funktionierende Lösung gefunden, wie diese Linksliste(Ebene) wieder verschwindet.

          Wie ich es für alle anderen Browser geschafft habe könnt Ihr ja sehen, nur was mache ich mal wieder mit dem guten alten NN 4.x? Man kann weder den oben genannten Link neben, der das ganze mit onMouseOver initiiert, denn wenn man dann mit der Maus auf die Ebene geht, ist sie auch schon wieder weg, da man den Link verlassen hat! Und extra einen link 'schließen' ist nicht wirklich schön!
          Hat jemand eine Idee, wie man das für den Netscape machen könnte? Könnte auch ganz unabhängig vom IE sein, dann gebe ich dem Netscape halt ein anderes Script aus, per PHP, nur wie geht das überhaupt?

          Viele Grüße
          Andreas

          1. Moin!

            Hat jemand eine Idee, wie man das für den Netscape machen könnte? Könnte auch ganz unabhängig vom IE sein, dann gebe ich dem Netscape halt ein anderes Script aus, per PHP, nur wie geht das überhaupt?

            Dein Problem ist, daß Netscape 4 das HTML-Attribut für den Eventhandler "onmouseover" und "onmouseout" nur in Links (<a> und <area>) erlaubt bzw. versteht.

            Du hast zwei Möglichkeiten:
            1. Du setzt in den Layer einen Link, der dann onmouseout erlaubt.
            2. Du fügst per Javascript dem Layerelement den Eventhandler onmouseout hinzu (wobei ich nicht garantiere, daß das mit Layern funktioniert - bei unverlinkten Bildern gehts aber).

            Variante 2 würde ungefähr so gehen:

            mouseoutfunktion()
            {
              versteckfunktion('derLayer');
            }

            document.layers['derLayer'].onmouseout=mouseoutfunktion;

            Um andere Browser damit nicht zu belästigen, sollte der letzte Befehl noch in eine Abfrage geschachtelt werden:

            if (document.layers)
            {
              document.layers['derLayer'].onmouseout=mouseoutfunktion;
            }

            Bis auf endlich viele Fehler könnte das so klappen.

            - Sven Rautenberg

            1. Hi Sven!

              Danke für den Hinweis, aber leider funktioniert es so nicht, vielleicht liegt es auch an der Funktion.

              if (document.layers)
              {
                document.layers['derLayer'].onmouseout=mouseoutfunktion;
              }

              Ich habe aber ein neues Problem, und zwar wenn ich ja anklickbare Links in der Ebene haben will, dann darf ich natürlich keine Ebene darüberlegen, oder? Aber dann funktioniert meine IE Version noch nichtmal mehr, denn wenn ich onMouseOut in die Ebene lege, passiert das schon, wenn ich über Text in der Ebene gehe! Also brauche ich wahrscheinlich ganz was anderes. Ich wollte die links in eine Tabelle in der Eben einfügen. Wie Browserkompatibel ist das Wohl, wenn ich onMouseOut in das <table>-tag lege? Nach HTML 4.0 sollte das gehen, aber halten sich da auch alle dran? Netscape 4.x. wäre also wieder außen vor. Aber vielleicht klappt das mit <table> oder <td> ja besser als mit <div>, was meinst Du?

              Kennt jemand vielleicht die ein oder andere Seite, in der so ein Menü auch im Netscape 4.x funktioniert? Würde ich mir gerna mal anschauen. Auf Microsoft.com finde gibts das nicht mehr, und sonst finde ich nur Sachen, die das mit <map> und <area> machen, aber das würde ich gerne vermeiden!

              Mein Versuch: http://knet-systems.de/test/test.htm

              Viele Grüße
              Andreas