Newsgroup: it.comp.lang.javascript
Titolo: Compatibilità script js con Opera 7.11

Salve, ho un problema con una mod di un forum.
La mod consente di nascondere parte del contenuto di un messaggio
aggiungendo i tag [spoiler] e [/spoiler]
sì che il contenuto diviene visibile solo cliccando su un testo.
Ora il tutto funziona su explorer, ma non su  Opera, col risultato che gli
utenti di opera non possono visualizzare lo spoiler tout court. Qualcuno
saprebbe dirmi come risolvere il problema, magari agendo sullo script (che
non è mio)
lo script è :
<script>
<!--
var ns6=document.getElementById&&!document.all?1:0
var head="display:''"
var folder=''
function expandit(curobj){
folder=ns6?curobj.nextSibling.nextSibling.style:document.all[curobj.sourceIn
dex+1].style
if (folder.display=="none")
folder.display=""
else
folder.display="none"
}
//-->
</script>
Grazie in anticipo
Ciao
--
ORF3O
_________________________________________
"In questa città di lebbrosi, io ho le piaghe più belle!"
(The Two Jack - Jack Nicholson)
http://o3fro.altervista.org
  Registratevii pleaseee!!

Chiedo scusa, rivedendo il codice mi sono reso conto trattarsi non di
javascript ma di dhtml :(


> Chiedo scusa, rivedendo il codice mi sono reso conto trattarsi non di
javascript ma di dhtml :(
Forse ha ragione chi mi dice che ora faccio l'idraulico, mah...dhtml? tag
spoiler? Eccheé ?

 mah...dhtml? tag  spoiler? Eccheé ?
Il tag [spoiler] non c'entra nulla con scripts vari, è solo un codice
inserito in un forum (avrebbe potuto chiamarsi anche [pippo] o [pluto] che
nasconde il contenuto inserito in esso. tecnicamente lo spoiler si ha quando
in un messaggio qualcuno anticipa la trama, il finale o altro di un film,
così facendo può decisamente rompere le uova nel paniere a chi non ha ancora
visto il film, da qui la necessità di nasconderlo e renderlo visibile solo
se si vuole.
Il DHTML, beh, la microsoft l'ha fatto, esiste, io che ci posso fare? Tra
l'altro non ne capisco un acca  :)
Ciao


 l'altro non ne capisco un acca  :)
Dio ce ne scampi, il DHTML non l'ha "fatto" Microsoft.
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 javascript ma di dhtml :(
Oibo', e il DHTML con cosa lo fai, scusa? Con l'ASM80x86? :)
il DHTML non e' altro che la "somma" di Javascript/DOM/CSS, ergo.. non 
sei affatto OT.


 </script>
A naso direi che e' la variabile ns6 a dare questo tipo di problema.
Non e' che sia quel gran che' come browser sniffing..
Opera difatti, riconosce il document.all anche se non e' IE.. il punto 
e' che poi non e' che lo sappia usare quel granche' bene, ed e' anche 
probabile che non abbia la proprieta' sourceIndex.
Ergo, questo script riconosce Opera come se fosse Internet Explorer, ma 
- di fatto - non lo e', ed ecco tutto il casino.
Almeno a occhio, direi che e' cosi'. Inoltre, possibilmente, si dovrebbe 
evitare di usare nextSibling a cascata.. 
In ogni caso, prova cosi':
function expandit(curobj){
	var folderStyle=null;
	if (curobj.nextSibling){
		folderStyle=curobj.nextSibling.nextSibling.style;
	}else if (document.all && curobj.sourceIndex){
		folderStyle=document.all[curobj.sourceIndex+1].style
	}
 
	if (folderStyle)
		folderStyle.display=
(folderStyle.display=="none")?"block":"none";
}
(ovviamente riporta le righeandate a capo automaticamente)
Non e' una funzione molto sicura.. ma credo un po' meglio di prima fossi 
in te rivedrei un po' l'intero processo, ovvero com'e' strutturato il 
DOM, per evitare tutti quei nextSibling.
Spero vada, non posso testarla perche' non ho la tua pagina su cui 
andra' a girare.



Chiedo scusa per la mia ignoranza in materia :)
Grazie



Come sopra :), io pensavo fosse un linguaggio di script a se stante,
posseggo solo conoscenze di base di javascript, dovrò studiare ancora a
lungo :°°(


 In ogni caso, prova cosi':
[CUT]
Grazie mille, lo provo poi ti fò sapere.
Ciao
--
ORF3O che dovrebbe imparare tante cose :)


 Chiedo scusa per la mia ignoranza in materia :)
Non era un "rimprovero", soprattutto non era diretto a te, quanto un 
"imprecazione generale". :D


 lungo :°°(
L'importante e' averne voglia. Di imparare, intendo. Il resto vien da se'. :)


 ORF3O che dovrebbe imparare tante cose :)
Sei sempre in tempo.. :)
