Avatar billede Slettet bruger
16. november 2004 - 16:04 Der er 9 kommentarer og
1 løsning

drop menu der skal virke i Internet Explorer og Netscape

Jeg har følgende drop menu som jeg bruger dynamisk med en database. Er der nogen der kan hjælpe mig igang med at lave den cross browser?

<html>
<head>
<style>
body{font-family:arial;}

table{font-size:80%;background:#000000}

a{color:black;text-decoration:none;font:bold}

a:hover{color:#666666;}

td.menu{background:#ffffff}

table.menu
{
font-size:100%;
position:absolute;
visibility:hidden;
}
</style>
<script type="text/javascript">
function showmenu(elmnt)
{
document.all(elmnt).style.visibility="visible"
}

function hidemenu(elmnt)
{
document.all(elmnt).style.visibility="hidden"
}
</script>
</head>
<body>

<h3>Drop down menu</h3>

<table width="100%">
<tr bgcolor="#ffffff">
  <td onmouseover="showmenu('tutorials')" onmouseout="hidemenu('tutorials')">
  <a href="http://www.itforalle.dk">Sites</a><br />
  <table class="menu" id="tutorials" width="100%">
  <tr><td class="menu"><a href="http://www.hodesign.dk">hodesign.dk</a></td></tr>
  <tr><td class="menu"><a href="http://www.itforalle.dk">itforalle.dk</a></td></tr>
  <tr><td class="menu"><a href="http://www.c3d.dk">c3D.dk</a></td></tr>
  <tr><td class="menu"><a href="http://www.link2design.dk">link2design.dk</a></td></tr>
  <tr><td class="menu"><a href="http://www.hodclub.dk">hodclub.dk</a></td></tr>
  </table>
  </td>
  <td onmouseover="showmenu('scripting')" onmouseout="hidemenu('scripting')">
  <a href="http://www.hotscripts.com">Scripting</a><br />
  <table class="menu" id="scripting" width="100%">
  <tr><td class="menu"><a href="../js/default.asp">JavaScript</a></td></tr>
  <tr><td class="menu"><a href="../vbscript/default.asp">VBScript</a></td></tr>
  <tr><td class="menu"><a href="default.asp">DHTML</a></td></tr>
  <tr><td class="menu"><a href="../asp/default.asp">ASP</a></td></tr>
  <tr><td class="menu"><a href="../ado/default.asp">ADO</a></td></tr>
  </table>
  </td>
  <td onmouseover="showmenu('validation')" onmouseout="hidemenu('validation')">
  <a href="../site/site_validate.asp">Validation</a><br />
  <table class="menu" id="validation" width="100%">
  <tr><td class="menu"><a href="../site/site_validate.asp">Validate HTML</a></td></tr>
  <tr><td class="menu"><a href="../site/site_validate.asp">Validate XHTML</a></td></tr>
  <tr><td class="menu"><a href="../site/site_validate.asp">Validate CSS</a></td></tr>
  <tr><td class="menu"><a href="../site/site_validate.asp">Validate XML</a></td></tr>
  <tr><td class="menu"><a href="../site/site_validate.asp">Validate WML</a></td></tr>
  </table>
  </td>
</tr>
</table>

</body>
</html>
Avatar billede skovenborg Nybegynder
17. november 2004 - 15:44 #1
den nemme måde:
document.all(elmnt).style med document.getElementById(elmnt).style
Avatar billede skovenborg Nybegynder
17. november 2004 - 15:46 #2
eller hvis du gerne vil være rigtig crosskompitabel:
function getStyleObject(elmId) {
  if (document.getElementById) {return document.getElementById(elmId).style;}
  else if (document.all) {return document.all[elmId].style;}
  else if (document.layers) {return document.layers[elmId];}
  else {return null;}
}

function showmenu(elmnt)
{
elm = getStyleObject(elmnt);
if (elm) {elm.visibility="visible";}
}

function hidemenu(elmnt)
{
elm = getStyleObject(elmnt);
if (elm) {elm.visibility="hidden"}
}

Skulle gerne virke fra NS4 og IE4 af
Avatar billede Slettet bruger
17. november 2004 - 15:58 #3
hey--- hvor fedt

Jeg prøver det lige af :-)
Avatar billede Slettet bruger
18. november 2004 - 09:29 #4
Ja det virker delvist. Mit problem er dog at jeg ikke altid har mulighed for at køre menu table i 100% hvilket på mac gør at den gør plads til de skjulte undermenu tabeller i menu tabellen hvilket igen gør at tabellen bliver meget høj???
Avatar billede skovenborg Nybegynder
18. november 2004 - 22:40 #5
så bliver du nødt til at erstatte elm.visibility med elm.display, så der står:
function showmenu(elmnt)
{
elm = getStyleObject(elmnt);
if (elm) {elm.display="block";}
}

function hidemenu(elmnt)
{
elm = getStyleObject(elmnt);
if (elm) {elm.display="none"}
}

Det er muligt, at der her ryger noget kompitalitet til de helt gamle browsere, som ikke kender display, men det vil jeg nok vælge at overse ;-)
Avatar billede Slettet bruger
19. november 2004 - 08:12 #6
Jeg har forsøgt med følgende men den viser ikke dropmenuerne så:

<script bla bla >
function getStyleObject(elmId) {
  if (document.getElementById) {return document.getElementById(elmId).style;}
  else if (document.all) {return document.all[elmId].style;}
  else if (document.layers) {return document.layers[elmId];}
  else {return null;}
}

function showmenu(elmnt)
{
elm = getStyleObject(elmnt);
if (elm) {elm.display="block";}
}

function hidemenu(elmnt)
{
elm = getStyleObject(elmnt);
if (elm) {elm.display="none"}
}
</script>
Avatar billede skovenborg Nybegynder
19. november 2004 - 16:41 #7
åh, glemte nok at nævne, at dit stylesheet jo også skal ændres:
table.menu
{
font-size:100%;
position:absolute;
display:none
}
Avatar billede Slettet bruger
22. november 2004 - 09:40 #8
Yes...nu begynder det at ligne noget..

Jeg har dog lige et lille men....

når jeg tjekker www.inovision.dk/menu/ på en mac så er det som om at menuen der skal folde sig ud folder sig ud i den table den ligger i dvs at designet rykkes nedad og menu tablen bliver ligeså høj som den drop menu den skal vise.

håber du forstår hvad jeg mener?
Avatar billede Slettet bruger
24. november 2004 - 08:14 #9
Skal jeg bare lukke spørgsmålet?

Hvis nogen er villig til at løse ovenstående problem er jeg villig til at betale lidt for det...
Avatar billede Slettet bruger
30. november 2004 - 11:01 #10
lukker
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

IT-JOB

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Unik System Design A/S

QA Engineer for AI-first development