Sebastian Schimpf: Hab Probleme mit einem JS für Layereinblendung

Hallo zusammen,

ich habe ein Java-Script zusammengewerkelt, welches einen Infolayer einblendet, wenn man mit der Maus über die Navigation fährt.

http://www.zabdesign.de/pro/party-project/
Im Internet Explorer läuft es ohne Probleme, doch der Mozilla spuckt eine Fehlermeldung aus und stellt den normalen Rollover-Effeckt nicht mehr richtig dar.

Fehlermeldung Mozilla
http://www.zabdesign.de/temp/meldung.gif

Der fehler kann nicht gravierend sein, sonst würde der IE es ja nicht ausführen.

Über Hilfe wäre ich dankbar!

Gruß
Sebastian

  1. Hi Sebastian!

    Erst mal RESPEKT für die Seite, sieht richtig gut aus! (Bitte diesen Punkt nicht mehr aufgreifen)
    Du machst im JavaScript-Code erst mal grundsätzlich den Fehler, dass du nicht alle Zeilen mit dem Semikolon (";") abschließt, das solltest du immer beachten!
    Dann fasst du die Anweisungen nach if- und else-Abfragen nicht immer in die Klammern ("{ und }").

    Jetzt direkt zu deinem Problem:
    Schreib doch einfach mal diesen kleinen Code hin:

    if(document.getElementById){ alert("Aktiv!"); }

    damit kannst du überprüfen, ob dein Mozilla die Funktion überhaupt unterstützt.

    Dann würde ich statt "info-layer" lieber "infolayer" als Namen nehmen.

    cu

    Marc Reichelt || http://www.marcreichelt.de/

    --
    tel.: 0049/6181/72224
    Linux is like a wigmam - no windows, no gates and an Apache inside!!!
    1. Hi,

      danke für das Lob!

      Der Quellcode sieht auf deinen Hinweis hin nun so aus:

      var linktext=new Array()

      linktext[0]="Startseite mit aktuellen Infos"
        linktext[1]="Informationen rund um das Thema Drogenkonsum"

      var ns = document.getElementById&&!document.all
      var ie = document.all

      function show_text(thetext, whichdiv){    document.getElementById("infolayer").style.visibility  = "visible";
          if (ie){
       eval("document.all."+whichdiv).innerHTML=linktext[thetext];
      }
          else if (ns){
       document.getElementById(whichdiv).innerHTML=linktext[thetext];
       }
      }

      function reset(whichdiv){
          if (ie){
        eval("document.all."+whichdiv).innerHTML='';
      }
          else if (ns) {
        document.getElementById(whichdiv).innerHTML='';
        document.getElementById("infolayer").style.visibility  = "hidden";
       }
      }

      Den Test habe ich auch gemacht und die Funktionalität ist aktiv.

      Schon mal danke für den Hinweis.
      Die fehlermeldung lautet aber immernoch "whichdiv has no properties! "

      Gruß
      ZAB

  2. Noch zur Ergänzungm für Leute, die den Quellcode
    gleich jetzt und hier sehen wollen.

    /* Layer einblenden */
    var linktext=new Array()

    linktext[0]="Test 1"
    linktext[7]="Test 2"

    var ns = document.getElementById&&!document.all
    var ie = document.all

    function show_text(thetext, whichdiv)
    {
    document.getElementById("info-layer").style.visibility = "visible";
    if (ie) eval("document.all."+whichdiv).innerHTML=linktext[thetext]
    else if (ns) document.getElementById(whichdiv).innerHTML=linktext[thetext]
    }

    function reset(whichdiv)
    {
    if (ie) eval("document.all."+whichdiv).innerHTML=''

    else if (ns) document.getElementById(whichdiv).innerHTML='';
    auf diese Zeile bezieht sich die Fehlermeldun des Mozillas:
    whichdiv has no properties!

    Der IE gibt keine Fehlermeldung aus!

    document.getElementById("info-layer").style.visibility = "hidden";
    }

    Aufruf des Progrämmchens: (inkl. Rollover)

    <a href="#" onmouseover="show_text(0,'i1'); mov('home'); window.status='Homepage';return true;" onmouseout="reset('i-1'); mou('home');window.status='';"><img src="gfx/n-home.gif" alt="Homepage" name="home" width="140" height="26" border="0" class="nav-img" id="home" /></a><br />

    Layerdefinition im Quellcode:

    <div class="t-home">
    <!-- Info-Text Home -->
    <div id="info-layer" class="nav-info">
    <div class="txt-info" id="i1">
    </div>
    </div>

    Das ganze in Aktion:

    http://www.zabdesign.de/pro/party-project/

    Wie gesagt, ich bin über jede Hilfe dankbar!

    gruß
    ZAB