Avatar billede Slettet bruger
19. december 2001 - 00:29 Der er 7 kommentarer og
2 løsninger

Af nysgerrighed: Kan min simple menu nemt virke i NN 4.x og 6.2

Jeg har flikket en simpel dropdown menu sammen (til et Intranet med Win 9x, 2000 og IE 5, 5.5 og 6.0) som jeg valgte ikke at bruge alligevel.

Til min store overraskelse fandt jeg at den virkede i Opera 5.12, men ikke i NN 6.2 (har ikke testet i 4.x).

Er der en nem løsning? For menuen er jo ret lille og nem (synes jeg selv)

Altså: Råd til at få den til at virke i NN 4.x og 6.x
Avatar billede Slettet bruger
19. december 2001 - 00:29 #1
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<html>
<head>
<META HTTP-EQUIV=\"content-type\" CONTENT=\"text/html; charset=ISO-8859-1\">
    <title>Test af menu</title>

<link rel=\"STYLESHEET\" type=\"text/css\" href=\"menu.css\">

<style TYPE=\"text/css\">
#undermenu1 {position: relative; visibility:hidden; z-index: 2; background-color:Khaki;}
#undermenu2 {position: relative; visibility:hidden; z-index: 2; background-color:Gainsboro;}
#undermenu3 {position: relative; visibility:hidden; z-index: 2; background-color:PaleTurquoise;}
#undermenu4 {position: relative; visibility:hidden; z-index: 2; background-color:Bisque;}
#tekst{position: relative; top:20; visibility:show; z-index: 1;}
</style>
   
<script type=\"text/javascript\">

var undermenuIndhold = new Array;//definerer nyt array

//indholdet af ovenstående array (4 elementer) bestående af strings
undermenuIndhold[1] = \"Undermenu1.1,link1.html,Undermenu1.2,link2.html,Undermenu1.3,link3.html,Undermenu1.4,link4.html\";
undermenuIndhold[2] = \"Undermenu2.1,link1.html,Undermenu2.2,link2.html,Undermenu2.3,link3.html\";
undermenuIndhold[3] = \"Undermenu3.1,link1.html,Undermenu3.2,link2.html\";
undermenuIndhold[4] = \"Undermenu4.1,link1.html,Undermenu4.2,link2.html,Undermenu4.3,link3.html,Undermenu4.4,link4.html,Undermenu4.5,link5.html\";

function skrivMenu(n) //laver vores arrays om til links med tekst i
{
var undermenuArray = undermenuIndhold[n].split(\",\"); //splitter arrayet op ved kommaer

    for (i=0; i < undermenuArray.length; i=i+2) { //tæller antal elementer og springer hver 2. over
    document.writeln(\"<a href=\'\" + undermenuArray[i+1] + \"\'>\" + undermenuArray[i] + \"</a><br>\");
    }
}

function skjulSub() //skjuler alle layers med undermenuer
{
undermenu1.style.visibility =\"hidden\"
undermenu2.style.visibility =\"hidden\"
undermenu3.style.visibility =\"hidden\"
undermenu4.style.visibility =\"hidden\"
}

function visSub(n) //aktiveres ved mouseover på hovedmenu
{
skjulSub();
document.all[\"undermenu\" + n].style.visibility = \"visible\";
}

</script>

</head>

<body>

<div style=\"z-index:3; position:absolute\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
    <td bgcolor=\"Khaki\" onmouseOver=\"visSub(1)\" onmouseout=\"skjulSub()\" class=\"menu\"><div id=\"menu1\"><a href=\"#\">Menu 1</a></div></td>
    <td bgcolor=\"Gainsboro\" onMouseOver=\"visSub(2)\" onmouseout=\"skjulSub()\" class=\"menu\"><div id=\"menu2\"><a href=\"#\">Menu 2</a></div></td>
    <td bgcolor=\"PaleTurquoise\" onMouseOver=\"visSub(3)\" onmouseout=\"skjulSub()\" class=\"menu\"><div id=\"menu3\"><a href=\"#\">Menu 3</a></div></td>
    <td bgcolor=\"Bisque\" onMouseOver=\"visSub(4)\" onmouseout=\"skjulSub()\" class=\"menu\"><div id=\"menu4\"><a href=\"#\">Menu 4</a></div></td>
</tr>

<tr>
    <td  valign=\"top\" class=\"undermenu\"><div id=\"undermenu1\" onmouseout=\"skjulSub()\" onmouseOver=\"visSub(1)\"><script type=\"text/javascript\">skrivMenu(1);</script></div></td> <!--I scriptet hentes undermenuen og udskrives i cellen -->
    <td valign=\"top\" class=\"undermenu\"><div id=\"undermenu2\" onmouseout=\"skjulSub()\" onmouseOver=\"visSub(2)\"><script type=\"text/javascript\">skrivMenu(2);</script></div></td>
    <td valign=\"top\" class=\"undermenu\"><div id=\"undermenu3\" onmouseout=\"skjulSub()\" onmouseOver=\"visSub(3)\"><script type=\"text/javascript\">skrivMenu(3);</script></div></td>
    <td valign=\"top\" class=\"undermenu\" ><div id=\"undermenu4\" onmouseout=\"skjulSub()\" onmouseOver=\"visSub(4)\"><script type=\"text/javascript\">skrivMenu(4);</script></div></td>
</tr>
</table></div>
<div class=\"menu\" id=\"tekst\">Her kommer der tekst<br>Og tekst igen</div>
</body>
</html>
Avatar billede warpgiga Nybegynder
19. december 2001 - 12:17 #2
document.all[\"undermenu\" + n].style.visibility = \"visible\";

virker ikke i netscape.

brug istedet:

document.getElementById(\"undermenu\" + n).style.visibility = \"visible\";

så er du ihvertfald godt på vej ;)
Avatar billede warpgiga Nybegynder
19. december 2001 - 12:19 #3
det var til 6.2 og Mozilla.org

til Netscape 4:

eval(\'document.layers.undermenu\' + n + \'.style.visibility = \"visible\";\');
Avatar billede warpgiga Nybegynder
19. december 2001 - 12:20 #4
ups fejl, her er den:

eval(\'document.layers.undermenu\' + n + \'.visibility = \"visible\";\');
Avatar billede Slettet bruger
19. december 2001 - 14:56 #5
Ja, og så skal man sit nok skrive:
document.layers[undermenu + n].visibility = \"show\";
Avatar billede Slettet bruger
19. december 2001 - 14:57 #6
sit = vist
Avatar billede -mundi- Nybegynder
20. december 2001 - 22:41 #7
hvis du bruge style.visibiliy kan man altid bruge \"visible\"
Avatar billede Slettet bruger
21. december 2001 - 13:17 #8
Ja, men i NS4.x refererer man jo til visibility\'en uden at gå igennem style-objektet først!
Avatar billede Slettet bruger
30. december 2001 - 16:42 #9
Nu har jeg i længere tid forsøgt at få det til at virke med den kode i er kommet med, men det dutter altså ikke...Hvis der er nogen der gider at have menuen er de velkomne :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester