A Agneus Medlem sedan dec. 2003 46 inlägg Frågan 29 mars 2005 11:01 #1 Hej
Har använt detta sätt för att göra expanderande menyer. Men nu har jag upptäckt att det inte funkar i Firefox. Någon som vet varför och hur man kan rätta till det?
Sidan med menyn ligger i ett frameset.
<html>
<head>
<meta http-equiv="Content-Language" content="sv">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
<base target="main">
<script>
function menu(obj) {
if(obj.style.display=='none') {
obj.style.display=''
}
else obj.style.display='none'
}
</script>
</head>
<body>
<div onclick="menu(menyProd)" style="cursor: hand">
<a href="Produkten.htm">Produkten</a>
</div>
<div style="display: none" id="menyProd">
<a href="A.htm">A</a><br>
<a href="B.htm">B</a>
</div>
</body>
</html>
@nders Medlem sedan juni 2000 32 967 inlägg På vilket sätt fungerar det inte i Firefox?
Jag tycker koden ser ut att funka likadant i IE som i FF.
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Korrekt DOM-kod:
<div onclick="menu(document.getElementById('menyProd'))" style="cursor: hand">
dectgap Medlem sedan sep. 2002 1 655 inlägg Du skriver
onclick="menu(menyProd)"
d.v.s. du referar till ett element direkt via dess id.
Det är ingen allmäntfungerande metod, utan fungerar bara i IE.
Det korrekta är att använda sig av document.getElementById() .
Testa därför med:
<html>
<head>
<meta http-equiv="Content-Language" content="sv">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
<base target="main">
<script>
function menu(objId) {
var obj = document.getElementById(objId);
if(obj.style.display=='none') {
obj.style.display=''
}
else obj.style.display='none'
}
</script>
</head>
<body>
<div onclick="menu('menyProd')" style="cursor: pointer">
<a href="Produkten.htm">Produkten</a>
</div>
<div style="display: none" id="menyProd">
<a href="A.htm">A</a><br>
<a href="B.htm">B</a>
</div>
</body>
</html>
Du skickar alltså elementets id som en sträng, och använder sedan document.getElementById() i funktionen menu() för att utifrån id:t få fram ett element.
Jag ändrade även
style="cursor: hand"
till
style="cursor: pointer"
eftersom det är det "rätta" sättet att skriva för att få fram en hand (=länkpekare).
A Agneus Medlem sedan dec. 2003 46 inlägg Tack för hjälpen dectgap, nu fungerar det som det ska.
W web00132 Medlem sedan maj 2001 797 inlägg Men hörni, koden som dectgap skrev funkar inte i IE med SP2. Går det inte att fixa så en kod funkar i båda webbläsarna?
dectgap Medlem sedan sep. 2002 1 655 inlägg
web00132 skrev:
Men hörni, koden som dectgap skrev funkar inte i IE med SP2. Går det inte att fixa så en kod funkar i båda webbläsarna?
Försöker du testa koden lokalt på din dator? I så fall fungerar det inte i.o.m. SP2.
Om du istället lägger upp det på nätet ska det gå bättre.