Nina: Ebenen ein/ausblenden läuft mit IE aber nicht mit NS

Hallo,

habe folgendes zusammengesbastelt:

<html>
<head>
<title>Menu Test</title>
<script>
var zeigen = 0;
function ein(name){
var zeigen = 1;
document.all[''+name].style.visibility = "visible";
}

function aus(name){
zeigen = 0;
document.all[''+name].style.visibility = "hidden";
}
</script>
</head>

<body>
<table cellpadding=2 cellspacing=1 bgcolor="#ffffff">
<tr><td bgcolor="#dddddd" onmouseover="ein('m1')" onmouseout="aus('m1')"><a href="#">menu1</a>
<span id="m1" style="position:absolute;left:105;visibility:hidden" onmouseout="aus('m1')">
<table cellpadding=2 cellspacing=1><tr><td>
Test-Submenu Nr1
<br />
Test-Submenu Nr2
<br />
Test-Submenu Nr3
<br />
Test-Submenu Nr4
<br />
Test-Submenu Nr5
<br />
</td></tr></table>
</span>
</td></tr>

<tr><td bgcolor="#dddddd" onmouseover="ein('m2')" onmouseout="aus('m2')"><a href="#">nocheinmenu2</a>
<span id="m2" style="position:absolute;left:105;visibility:hidden" onmouseout="aus('m2')">
<table cellpadding=2 cellspacing=1><tr><td>
Test-Submenu Nr1
<br />
Test-Submenu Nr2
<br />
Test-Submenu Nr3
</td></tr></table>
</span>
</td></tr>

<tr><td bgcolor="#dddddd" onmouseover="ein('m3')" onmouseout="aus('m3')"><a href="#">weiteresmenu3</a>
<span id="m3" style="position:absolute;left:105;visibility:hidden" onmouseout="aus('m3')">
<table cellpadding=2 cellspacing=1><tr><td>
Test-Submenu Nr1
<br />
Test-Submenu Nr2
<br />
Test-Submenu Nr3
</td></tr></table>
</span>
</td></tr>
</table>

</body>
</html>

Das klappt auch super mit dem IE - aber nicht mit dem NS.
Was muss ich da anders machen???

Danke für Eure Kommentare.

LG Nina :-)

  1. Hallo,

    Das klappt auch super mit dem IE - aber nicht mit dem NS.
    Was muss ich da anders machen???

    du solltest nicht document.all verwenden. Verwende besser das zum W3C engeführte Document Object Model (DOM). Es wird sowohl von NS/Opera als auch IE verstanden.
    Informiere dich bitte im selfHTML über gebraucht etc http://selfhtml.teamone.de/javascript/objekte/document.htm schau dir besonders getElementById() an.

    gruß,

    Severin

  2. Hallo,

    <script>

    sollte heissen: <script language="JavaScript" type="text/JavaScript">

    document.all[''+name].style.visibility = visible";

    document.all ist MS IE-spezifisch, NN weiss nicht was damit gemeint ist

    Liess in SelfHTML das Kapitel ueber DHTML, wenn Du NN4.x nicht unterstuetzen willst, ist DOM das richtige fuer Dich, andernfalls hilft die DHTML-Bibliothek von SelfHTML

    Dieter

  3. Moin

    function ein(name){
    var zeigen = 1;
    document.all[''+name].style.visibility = "visible";
    }

    function aus(name){
    zeigen = 0;
    document.all[''+name].style.visibility = "hidden";
    }

    Netscape 4.7 kennt document.all nicht --> Netscape
    Netscape >= 6 kennt document.all nicht --> W3Cdom
    Deine Notation ist falsch

    if (browser=="W3Cdom"){document.getElementById(divid).style.visibility="visible";}
    if (browser=="Netscape"){document.layers[divid].visibility="show";}
    if (browser=="Explorer"){document.all[divid].style.visibility="visible";}

    Gruesse
    Wilhelm

    --
    Q: Warum gibt es in LinuxLand so viele Trolljaeger?
    A: Weil dort die groessten Exemplare wohnen.
  4. Hallo Nina,

    <script>

    auch eine Variante, nur fehlt da trotzdem ein type="text/javascript"

    document.all[''+name].style.visibility = "visible";

    *grummel* schon wieder das dämliche document.all - das kann nur der IE für die anderen Browser nimm besser document.getElementById("iddeselements").style.visibility = "visible";

    document.all[''+name].style.visibility = "hidden";

    dito

    <span [...]left:105; [...]>

    wie groß soll den der Abstand sein? 105 km,m,µm? -> Einheit angeben

    Das klappt auch super mit dem IE -

    kunststück, der IE macht ja auch jeden Murks :-)

    aber nicht mit dem NS.

    welcher NS? 1,2,3,4,6 oder 7?

    Grüße aus Nürnberg
    Tobias