Newsgroup: it.comp.lang.javascript
Titolo: Menu che non si muove con FireFox

 Ciao a tutti!
Ho fatto un semplice menu in JS piu' tabelle, cliccando sopra le voci
vengono mostrate o nascoste le tabelle...
Credo di aver usato solo chiamate standard e simili, ma sotto FireFox anche
se clicco non succede nulla.
Il codice e':
<script language="javascript" type="text/javascript">
<!--
function ShowTable(idTable,idImage) {
 if (document.all(idTable).style.display=="") {
  document.all(idTable).style.display="none";
  document.all(idImage).src="../images/m_apri.gif";
 } else {
  document.all(idTable).style.display="";
  document.all(idImage).src="../images/m_chiudi.gif";
 }
}
-->
</script>
Mentre questo e' una parte del codice html:
<table width="160" height="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
    <td height="100%" withd="100%" valign="top">
      <table width="160" cellspacing="0" cellpadding="2" border="0">
        <tr style="cursor:hand" height="15" class="rigapari"
onclick="javascript:ShowTable('Table1','Img1');">
          <td>
            <table width="100%" cellspacing="0" cellpadding="2" border="0">
              <tr class="rigapari">
                <td>Anagrafica</td>
                <td align="right"><img src="../images/m_apri.gif"
style="cursor:hand" id="Img1" width="16" height="16"></td>
              </tr>
            </table>
          </td>
        </tr>
        <tr>
          <td>
            <table width="100%" cellspacing="0" cellpadding="2" border="0"
id="Table1" style="display:none">
              <tr height="15" class="intestazionesel"
onmouseover="javascript:this.className='intestazione'"
onmouseout="javascript:this.className='intestazionesel'">
                <td
onclick="javascript:window.parent.frames('main').location='/pag1.php'"
style="cursor:hand">Pagina 1</td>
              </tr>
              <tr height="15" class="intestazionesel"
onmouseover="javascript:this.className='intestazione'"
onmouseout="javascript:this.className='intestazionesel'">
                <td
onclick="javascript:window.parent.frames('main').location='/pag2.php'"
style="cursor:hand">Pagina 2</td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
--
RedFoxy
A fox around web
Power at fox for a yiffing world!
Un forum per tutte le esigenze: 
http://forum.redfoxy.it

  if (document.all(idTable).style.display=="") {
AAAAAAaaaarghhhhhhhhh!!!!!!! :-)
document.all è una....c'è chi la chiama gentilmente "personalizzazione", chi
più realisticamente "gran porcata" di Microsoft....
Mai provato questo Firefox, ma sicuramente non supporterà collection
proprietarie di IE.
Dato che stai lavorando con id, puoi risolvere il tutto semplicemente
sostituendo document.all(tuoid) con document.getElementById(tuoid).
Unica "pecca" (se così si può chiamare): perdi compatibilità con IE4 (anche
se la guadagni con tutti gli altri browser moderni del mondo); se vuoi per
caso farlo funzionare anche con IE4 chiedi; sostituisci come sopra, poi se
non funziona ancora riposta lo script.
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M. -- 

 come sopra, poi se non funziona ancora riposta lo script.
So che con document.all sarei andato solo con IE e ho provato con altri
metodi supportati anche da N/M/FF solo che dopo andava sempre e solo con IE
quasi come se con N/M/FF non si postessero "nascondere" le tabelle...
CMQ ora provo con getElementById() e vediamo
Ciao ;^)=
-- 


 vengono mostrate o nascoste le tabelle...
[cut]
Inanzitutto come ti ha già detto Cristiano non stai sicuramente usando
"chiamate standard" (document.all è IE!); a parte questo ti segnalo un
problema che ho riscontrato io (non sò se possa incidere anche nel tuo
caso), io uso un menù costruito con dei DIV (anzichè TABLE) quando porto il
mouse su un determinato oggetto html viene scatenato del codice javascript
che visualizza il menù e lo posiziona in maniera assoluta nella pagina (nel
dettaglio della pagina c'è una altro div posizionato in maniera relativa che
contiene "delle cose").
Con Mozilla Firebird tutto funziona bene, cioè quando il menù si apre va' a
coprire parzialmente il DIV centrale e quando il menù si chiude tutto il DIV
centrale è disponibile; ho provato (giusto ieri) a far girare la mia web
application con Mozilla Firefox e capita una cosa stranissima: quando il
menù si apre viene visualizzato sotto al DIV centrale!
Non sò ancora se ci sia qualche imperfezione nel mio codice (ma sarebbe
strano che su Firebird tutto funziona!) o se sia un baco di Firefox...
Te segnalo questo solo affinchè non capiti anche a te magari che il menù in
realtà funzioni ma sia solamente coperto!
(se così fosse fammelo sapere, mi farebbe comodo saperlo!)
Ciao
    Andrea

 (se così fosse fammelo sapere, mi farebbe comodo saperlo!)
Interessante poi fammelo vedere... CMQ nel mio caso (con la modifica del
getElementId()) ora funziona senza problemi (o quasi), non e' un problema di
sovrapposizione (quello ce l'ho con un altra cosa che viene "bucata" dalle
select che stanno in primo piano) in quanto proprio non veniva eseguita la
funzione e poi anche con il menu piu' in basso dove non ci sono oggetti che
potrebbero coprirlo non avveniva nulla...
Ciao ;^)=

 Firefox...
z-index (o zIndex, immagino, se lo usi nei css) lo hai settato? Non lo ho
mai usato, ma dovrebbe indicare la visualizzazione grafica: z-index maggiori
stanno sopra agli z-index minori; se non setti z-index il browser può
decidere cosa fare (specifiche w3 dicono "undefined").


 decidere cosa fare (specifiche w3 dicono "undefined").
Sottolineo che il problema l'ho "avvistato" ieri e la soluzione è stata:
"chi se ne frega, per il momento continuo a usare FireBird!"  ;-) (sto'
lavorando ad una web application intranet e quindi posso permettermi questo
genere di costrizioni!)
Infatti per ora ho qualche altro giga di ToDo e di ShouldBe che hanno
priorità maggiore... insomma non ho ancora affrontato il problema!
Conosco comunque la proprietà zIndex e sinceramente nella versione attuale
(funzionante con FireBird) non l'ho considerata in quanto funziona lo
stesso; il ragionamento che ho fatto è che da Mozilla Firebird a Mozilla
Firefox la modifica che è stata fatta è di cambiare nome al browser perchè
Firebird è il nome di un altro software (un dbmanager se non ricordo male),
quindi non vedo motivo per il fatto che sul primo funzioni e sul secondo
no...
Beh, evidentemente tra la prima e la seconda versione non è solo il nome che
è cambiato!!!  ;-P