Avatar billede ieconfig Nybegynder
24. januar 2006 - 12:45 Der er 6 kommentarer og
1 løsning

Show/Hide virker ikke i Firefox

Hej.

Jeg har fundet følgende javascript i en gammel tråd og den virker da også helt perfekt i IE .. men desværre sker der intet i firefox.

Håber der er nogen der kan hjælpe.

Koden:

<html>
<head>
<title>MouseOver 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
<!--

// Bestemmelse af browseren
n=document.layers;
ie=document.all;

// Globale cross-browser show/hide variabler
if (n) {
visible='show';
hidden='hide'; }

else if (ie) {
visible='visible';
hidden='hidden';}

// Funktion til at vise lag
function vis_lag(menuid){
if(n) {document.layers[menuid].visibility=visible; document.layers["lag0"].visibility=hidden;}
else if (ie) {document.all(menuid).style.visibility=visible; document.all("lag0").style.visibility=hidden;}
}

// Funktion til at skjule lag
function skjul_lag(menuid){
if(n) {document.layers[menuid].visibility=hidden; document.layers["lag0"].visibility=visible;}
else if (ie) {document.all(menuid).style.visibility=hidden; document.all("lag0").style.visibility=visible;}
}

//-->
</script>
<style type="text/css">
.lag      {position:absolute;
      left: 210;
          top: 10px;
          width: 180px;
      layer-background-color: #cccccc;
      background-color: #cccccc;
          border: 5px solid #cccccc;
          color: #000000;
          font-family: verdana, arial, helvetica;
          font-size: 10px;
          }

</style>
</head>

<body bgcolor="#FFFFFF" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">
<!-- --- Tekst lag --- //-->
<div id="lag0" style="z-index:0; visibility: visible" class="lag">
  Denne tekst vil blive vist når man ikke rører nogle links</div>

<div id="lag1" style="z-index:1; visibility: hidden" class="lag">
  Dette er det tekstfelt vises ved berøring af Link 1</div>

<div id="lag2" style="z-index:1; visibility: hidden" class="lag">
  Dette er det tekstfelt vises ved berøring af Link 2</div>

<div id="lag3" style="z-index:1; visibility: hidden" class="lag">
  Dette er det tekstfelt vises ved berøring af Link 3<br>der vises ikke noget billede da jeg ikke har lagt noget ud for link 3</div>

<div id="lag4" style="z-index:1; visibility: hidden" class="lag">
  Dette er det tekstfelt vises ved berøring af Link 4<br>der vises ikke noget billede da jeg ikke har lagt noget ud for link 4</div>
     
<p><a href="link1.htm" onMouseOver="vis_lag('lag1')"; onMouseOut="skjul_lag('lag1')">Link1</a></p>
<p><a href="link2.htm" onMouseOver="vis_lag('lag2')"; onMouseOut="skjul_lag('lag2')">Link2</a></p>
<p><a href="link3.htm" onMouseOver="vis_lag('lag3')"; onMouseOut="skjul_lag('lag3')">Link3</a></p>
<p><a href="link4.htm" onMouseOver="vis_lag('lag4')"; onMouseOut="skjul_lag('lag4')">Link4</a></p>
</body>
</html>
Avatar billede roenving Novice
24. januar 2006 - 12:55 #1
Tjah, oldgammelt er det i hvert fald, for det er fra før browserne fik implementeret den javascript-DOM-binding, som følger af html4.01 !-)

-- og det er lavet til at understøtte NS4 og IE4, hvorfor man kan fjerne den ene halvdel (ns4-delen) og udskifte det med det, der virker i dag ...

<script language="javascript">
<!--

// Bestemmelse af browseren
dom=document.getElementById;
ie=document.all;

// Globale cross-browser show/hide variabler
visible='visible';
hidden='hidden';

// Funktion til at vise lag
function vis_lag(menuid){
if(dom) {document.getElementById(menuid).visibility=visible; document.getElementById("lag0").visibility=hidden;}
else if (ie) {document.all(menuid).style.visibility=visible; document.all("lag0").style.visibility=hidden;}
}

// Funktion til at skjule lag
function skjul_lag(menuid){
if(dom) {document.getElementById(menuid).visibility=hidden; document.getElementById("lag0#).visibility=visible;}
else if (ie) {document.all(menuid).style.visibility=hidden; document.all("lag0").style.visibility=visible;}
}

//-->
</script>
Avatar billede ieconfig Nybegynder
24. januar 2006 - 13:19 #2
tak for svaret - jeg kan dog ikke få dit script til at virke sammen med min ovenstående kode. -er det noget jeg misser ?

På forhånd tak!
Avatar billede roenving Novice
24. januar 2006 - 13:36 #3
Gaab, jeg havde lige glemt en detalje !-)

// Funktion til at vise lag
function vis_lag(menuid){
if(dom) {alert("hej");document.getElementById(menuid).style.visibility=visible; document.getElementById("lag0").style.visibility=hidden;}
else if (ie) {document.all(menuid).style.visibility=visible; document.all("lag0").style.visibility=hidden;}
}

// Funktion til at skjule lag
function skjul_lag(menuid){
if(dom) {document.getElementById(menuid).style.visibility=hidden; document.getElementById("lag0").style.visibility=visible;}
else if (ie) {document.all(menuid).style.visibility=hidden; document.all("lag0").style.visibility=visible;}
}
Avatar billede roenving Novice
24. januar 2006 - 13:37 #4
-- og alerten skal selvfølgelig fjernes igen, den var lige til debug !-)
Avatar billede ieconfig Nybegynder
24. januar 2006 - 14:01 #5
Tusinde tak ! - er virkelig glad for din hjælp - smid et svar så får du dine point - dem fortjener du :-)
Avatar billede roenving Novice
24. januar 2006 - 14:04 #6
Velbekomme '-)
Avatar billede roenving Novice
24. januar 2006 - 14:47 #7
-- og tak for point ;~}
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