Newsgroup: it.comp.lang.javascript
Titolo: errore javascript su display:none

ciao a tutti,
in una pagina web ho una tabella con questo codice:
<table id="tab81" style="display:none;">
ecc...
</table>
premendo un tastino sopra (prima della tabella) desidero mostrarla, 
percio' ho creato questo:
<a href="/" onclick="return showhide('tab81','sh81');">
<img id="sh81" src="images/moreinfo.png">
</a>
che chiama questa funzioncina (tra <head>..</head>):
function showhide(tableid, shid) {
     if ( document.getElementById(tableid).style.display == "none" ) {
       document.getElementById(shid).src = "images/lessinfo.png";
       document.getElementById(shid).alt = "Riduci";
       document.getElementById(shid).title = "Riduci";
       document.getElementById(shid).src = "images/lessinfo.png";
       document.getElementById(tableid).style.display = "table";
     }else{
       document.getElementById(shid).src = "images/moreinfo.png";
       document.getElementById(shid).alt = "Espandi";
       document.getElementById(shid).title = "Espandi";
       document.getElementById(tableid).style.display = "none";
     }
     return false;
   }
su firefox va tutto perfettamente: clicco una volta sul tastino e mi 
appare la tabella "tab81". clicco di nuovo e la nascondo, e cosi' via.
mentre su IE (uso, a fatica, il 6) ricevo questo errore javascript:
Errore: Impossibile ottenere la proprietà display. Argomento non valido.
Codice: 0
dove sbaglio?
-- 
ya, bb

        document.getElementById(tableid).style.display = "table";
table è un valore valido css2:
 
http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-display
Peccato che IE non sa cosa sia:
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties/display.asp
Non so se sia questo il problema, sostituiscilo con "block" per testare.
-- 
"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.

 Non so se sia questo il problema, sostituiscilo con "block" per testare.
fantastico!!!
adesso funziona benissimo e IE fa sempre piu' cagare!
:-)
grazie mille :-)
-- 
ya, bb

 adesso funziona benissimo e IE fa sempre piu' cagare!
:-)
in questo caso è solo altamente vetusto...
-- 
"Run rabbit run
 dig that hole, forget the sun
 and when at last the work is done
 don't sit down, it's time to dig another one"
									    P.F.

 in questo caso è solo altamente vetusto...
ma, se invece di mettere un display:block si rimuove l' attributo style?
-- 
Sto ascoltando: "Gemboy - Latin lover" (da: "Internettezza urbana", album
                del 2002, traccia 10, voto 74)

 ma, se invece di mettere un display:block si rimuove l' attributo style?
Non so...con IE se setti display="" se non ricordo male funziona; nelle
specifiche non trovo nulla; a naso potrebbe settare il default? Boh, sempre
a naso io eviterei.
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 ma, se invece di mettere un display:block si rimuove l' attributo style?
Si, difatti è la cosa migliore da fare, in alcuni casi è anche l'unica cosa
sensata da fare.
Ad esempio quando si vuole visualizzare/nascondere dinamicamente dei tag TR
da una tabella. 
-- 
~ Non esistono donne brutte. Dipende solo da quanta vodka bevi.
(proverbio russo)

 Boh, sempre a naso io eviterei.
Faresti male. :)
-- 
~ "FINARMENTE LI SFRATTATI AVRANNO UN TETTO SULLA TESTA!
...però tirato ammodino, un tegolo pe' vorta.." (Il vernacoliere)

 da una tabella. 
nel mio caso il valore di default e' appunto display:none
quindi tradotto in javascriptese come diventerebbe, reimpostarlo a default?
-- 
ya, bb

 (sebbene sia necessario farlo solo a causa di quella fetecchia di IE).
Guarda che non si tratta di un "workaround" o cose strane. Si tratta
semplicemente del normale funzionamento dei CSS; che ci è particolarmente
utile in alcuni casi con IE per evitare inutili sniffing.
-- 
~ Plagiarism is copying from one source;
research is copying from two or more
(Wilson Mizner)

 dei CSS.
Queste specifiche però io non le ho trovate. Sei sicuro che se metto nei
css un display:none e poi con IE assegno un display="" questo me lo setta a
"none"? mi puzza...
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.

 mi puzza...
Incomincio a sospettare che tu non abbia mai veramente compreso il perché 
si debba usare getComputedStyle() al posto di style.display per ricavare il
valore di un attributo non impostato (o impostato solo da CSS). :)
-- 
~ Neanche il futuro e' piu' quello di una volta.

 valore di un attributo non impostato (o impostato solo da CSS). :)
Ni...diciamo che quando non va uno uso l'altro...(lo so, lo so, con questa
mi bastoni, ma il tempo è tiranno...)
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 (lo so, lo so, con questa mi bastoni, ma il tempo è tiranno...)
Il tempo lo si trova, su! E poi basta poco per informarsi su questo genere
di questioni... Non è che devi studiare chissà che algoritmo. :)
-- 
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth."

 Si` si`, e` chiarissimo ed infatti come avevo scritto faccio cosi`...
Pardon, non avevo inteso :)
-- 
~ Chi segue gli altri, non arriva mai primo.

 D'accordo, ma l'esperienza passata non ti ha ancora insegnato nulla? :P
 
http://www.criosoftware.it/bak/defaultCss.htm
E cosě il Tommasino č contento [sempre meglio comunque che infilare il dito
nella piaga come ha fatto lui, alla fin fine, con tutte le malattie che ci
sono in giro...] :-/ vabbč, "per stavolta" hai ragione.


 sono in giro...] :-/ vabbč, "per stavolta" hai ragione.
ho corretto anche io il mio scriptello
grazie a tutti dell'aiuto :-)
-- 
a: dai non č difficile, la Chiesa ha commissionato la creazione della 
Basilica!
b: quindi ora vado a comprarmi un picasso e divento un artista?