webForumDet fria alternativet

Menylänkar i Mozilla

9 svar · 248 visningar · startad av Mog

MogMedlem sedan nov. 2003266 inlägg
#1

WF, I have a problem:OO

Jag håller på med en meny men när man klickar på en länk i Mozilla händer det ingenting, i IE funkar det.
Menyn är uppbyggd så här:

<TABLE BORDER="1" STYLE="position: absolute; top:100px; left:30px">
  <TR>
    <TD onMouseOver="showMenu('a1')" onMouseOut="hideMenu('a1')">En rubrik</TD>
  </TR>
</TABLE>

<TABLE BORDER="1" ID="a1" 
  STYLE="visibility:hidden; position: absolute; top:120px; left:30px; background: #FF0000" 
  onMouseOver="showMenu('a1')" onMouseOut="hideMenu('a1')">
  <TR>
    <TD><A HREF="http://www.webforum.nu/">En länk</A></TD>
  </TR>
</TABLE>

Har även provat med en onClick i cellen med länken.

Några förslag ?
Finns det andra sätt?

PeeerMedlem sedan mars 20025 907 inlägg
#2

Du kanske skulle bifoga själva javascriptet också? :)

MogMedlem sedan nov. 2003266 inlägg
#3

Kommer här.
Tror dock inte det är här problemet ligger.

function showMenu(Item)
{
document.getElementById(Item).style.visibility = 'Visible';
}

// Funktion för att dölja objekt
function hideMenu(Item)
{
document.getElementById(Item).style.visibility = 'Hidden';
}
PeeerMedlem sedan mars 20025 907 inlägg
#4

Ähum, koden fungerar fint för mig i mozilla. Vilken version av mozilla testar du med? Nedanstående script ska fungera även för sådana versioner som inte stödjer DOM.

/**
*Tar reda på vilken webbläsare det är
*/
ns4 = (document.layers)?true:false;
ie4 = (document.all &&(!document.getElementById))?true:false;
dom = (document.getElementById)?true:false;

/**
* Visar ett osynligt lager
* id är namnet på det lager som skall visas
*/
function showMenu(id) 
{
	if(ns4) document.layers[id].display="block";
	if(ie4) document.all[id].style.display="block";
	if(dom) document.getElementById(id).style.display="block";
}
/**
* Döljer ett synligt lager
* id är namnet på det lager som skall döljas
*/
function hideMenu(id) 
{
	if(ns4) document.layers[id].display="none";
	if(ie4) document.all[id].style.display="none";
	if(dom) document.getElementById(id).style.display="none";
}

Har fått koden här från wF någonstans.

MogMedlem sedan nov. 2003266 inlägg
#5

Peeer skrev:

Ähum, koden fungerar fint för mig i mozilla. Vilken version av mozilla testar du med?

Mozilla 1.4.2, Red Hat 9.0
Testade du Mozilla på windows?
Ska testa din kod och se vad som händer.

MogMedlem sedan nov. 2003266 inlägg
#6

Koden testad.
Samma fel, när man klickar på länken som finns i den dolda tabellen händer ingenting. (i mozilla)

PeeerMedlem sedan mars 20025 907 inlägg
#7

Det var visserligen mozilla firefox (0.8) som jag testade med. Har nu provat med IE6.0, Mozilla1.6 samt Opera7 (där buggade bredden på lagret & tabellen men länken fungerade iaf) och koden har fungerat i samtliga för mig (windows XP). Så tyvärr, jag har ingen aning om varför det inte fungerar för dig. :(

PepeJeriaMedlem sedan feb. 2003774 inlägg
#8

Kolla i preferences om du har avbockat javascript support, om inte, testa med en ny profile

MogMedlem sedan nov. 2003266 inlägg
#9

Peer skrev:

Det var visserligen mozilla firefox (0.8) som jag testade med. Har nu provat med IE6.0, Mozilla1.6 samt Opera7 (där buggade bredden på lagret & tabellen men länken fungerade iaf) och koden har fungerat i samtliga för mig (windows XP).

Verkar vara kombinationen Linux-Mozilla.

PepeJeria skrev:

Kolla i preferences om du har avbockat javascript support, om inte, testa med en ny profile

Om javascript hade varit "disablat" skulle väl inte funktionerna för att visa/dölja undermeny funkat?

Vet inte om denna tråd skulle varit i HTML-forumet.
Om man tar bort onMouseOut i andra tabellen så funkar länken.

MogMedlem sedan nov. 2003266 inlägg
#10

Löste problemet så här:

<TABLE BORDER="1" STYLE="position: absolute; top:100px; left:260px">
  <TR>
    <TD onMouseOver="showMenu('a1')" onMouseOut="hideMenu('a1')">En rubrik</TD>
  </TR>
</TABLE>

<TABLE BORDER="0" ID="a1" CELLPADDING="0" CELLSPACING="0"
      STYLE="visibility:hidden; position: absolute; top:120px; left:260px; background: #FF0000"
      onMouseOver="showMenu('a1')">
  <TR>
    <TD STYLE="width: 5px" onMouseOut="hideMenu('a1')"></TD>
    <TD><A HREF="http://www.webforum.nu/">En länk</A></TD>
    <TD STYLE="width: 5px" onMouseOut="hideMenu('a1')"></TD>
  </TR>
  <TR>
    <TD COLSPAN="3" STYLE="height: 5px" onMouseOut="hideMenu('a1')"></TD>
  </TR>
</TABLE>

Om det är så snyggt vet jag inte, men det funkar.
Om någon kommer på en annan lösning så ........... let me know :bire

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)