Newsgroup: it.comp.lang.javascript
Titolo: Script crea problemi con Mozilla e Opera

Innanzi tutto mi scuso per la "pesantezza" del messaggio.
Il sito del Centro Yoga dove insegno (realizzato da me, quindi non da un 
professionista) funziona bene con Firefox ed IE ma non con Mozilla (lo 
scrolling delle pagine non funziona) né con Opera (i link non si aprono).
In un altro ng mi hanno spiegato che la colpa è di un javascript che ho 
inseito per creare un effetto di transizione delle pagine (uguale per tutte 
le pagine ad eccezione della pagina index.htm).
Chi mi ha segnalato che il problema è causato dal javascript mi ha detto 
"Prova a vedere se riesci a fare senza (che e` meglio) o ad adeguarlo allo 
standard ecma".
Non ho idea di cosa fare.
Potete aiutarmi?
Il sito è 
www.yogajap.com
 e i due script li riporto in calce a questa mia 
richiesta.
Grazie mille in anticipo per ogni indicazione.
AC Sujan Singh
*************
SCRIPT PAGINA INDEX.HTM
<DIV class=intro id=i1></DIV><DIV class=intro id=i2></DIV><DIV class=intro 
id=i3></DIV><DIV class=intro id=i4></DIV><div class=intro id=i5></div><DIV 
class=intro id=i6></DIV><DIV class=intro id=i7></DIV><DIV class=intro 
id=i8></DIV><SCRIPT type="text/javascript">var speed=45
var temp=new Array()
var temp2=new Array()
if (document.layers){
for (i=1;i<=8;i++){
temp[i]=eval("document.i"+i+".clip")
temp2[i]=eval("document.i"+i)
temp[i].width=window.innerWidth
temp[i].height=window.innerHeight/8
temp2[i].top=(i-1)*temp[i].height
}
}
else if (document.all){
var clipright=document.body.clientWidth,clipleft=0
for (i=1;i<=8;i++){
temp[i]=eval("document.all.i"+i+".style")
temp[i].width=document.body.clientWidth
temp[i].height=document.body.offsetHeight/8
temp[i].top=(i-1)*parseInt(temp[i].height)
}
}
function openit(){
window.scrollTo(0,0)
if (document.layers){
for (i=1;i<=8;i=i+2)
temp[i].right-=speed
for (i=2;i<=8;i=i+2)
temp[i].left+=speed
if (temp[2].left>window.innerWidth)
clearInterval(stopit)
}
else if (document.all){
clipright-=speed
for (i=1;i<=8;i=i+2){
temp[i].clip="rect(0 "+clipright+" auto 0)"
}
clipleft+=speed
for (i=2;i<=8;i=i+2){
temp[i].clip="rect(0 auto auto "+clipleft+")"
}
if (clipright<=0)
clearInterval(stopit)
}
}
function gogo(){
stopit=setInterval("openit()",100)
}
gogo()</SCRIPT>
SCRIPT PAGINE SITO
<DIV class=intro id=i1></DIV><SCRIPT type="text/javascript">var speed=30
if (document.layers){
var reference=window.innerWidth/window.innerHeight
var temp=eval("document.i1.clip")
temp.left=temp.top=0
temp.right=window.innerWidth
temp.bottom=window.innerHeight
}
else if (document.all){
var reference=document.body.clientWidth/document.body.clientHeight
var rightclip,leftclip,topclip,bottomclip
var temp=document.all.i1.style
topclip=leftclip=0
rightclip=temp.width=document.body.clientWidth
bottomclip=temp.height=document.body.clientHeight
}
function doit(){
window.scrollTo(0,0)
if (document.layers){
if (temp.left>window.innerWidth/2)
clearInterval(stopit)
temp.left+=reference*speed
temp.top+=speed
temp.right-=reference*speed
temp.bottom-=speed
}
else if (document.all){
if (leftclip>document.body.clientWidth/2)
clearInterval(stopit)
temp.clip="rect( "+topclip+" "+rightclip+" "+bottomclip+" "+leftclip+")"
leftclip+=reference*speed
topclip+=speed
rightclip-=reference*speed
bottomclip-=speed
}
}
stopit=setInterval("doit()",100)</SCRIPT> 

 scrolling delle pagine non funziona) né con Opera (i link non si aprono).
Anzitutto: hai verificato che la JavaScript Console non protesti?
Qualora non protesti, prova a suddividere lo script in più funzioni e
prova a "segnalare" con un pò di messaggi i vari step, così vedi
dove si impapina.
Inoltre dovresti metterci dentro un pò di commenti, imho.
Ciao,
Andrea

 Inoltre dovresti metterci dentro un pò di commenti, imho.
???
AC Sujan Singh 

 if (document.layers){
document.layers funziona solo su Netscape 4.x
'bye

 document.layers funziona solo su Netscape 4.x
Grazie dell'input.
Sai se/dove ci siano script per effetti di transizione compatibili con 
Mozilla e/o Opera?
-- 
Andrea
- - - - - - - - - - - - - - - - - - - - - - - - - -
www.yogajap.com
 * 
www.amicideltibet.it
 

 AC Sujan Singh
Andrea

 // questo è un commento su una riga
/*
    questo è un commento
    su più righe
*/
Andrea

 Commenti... hai presente i commenti?
L'ha detto lui stesso che non è un professionista.. Quindi che non
sappia cosa siano i commenti non c'è nulla di strano. Sarebbe come se
lui venisse da me a chiedermi se ho presente un termine specifico dello
yoga che lui da per scontato (è già tanto che sappia che cos'è la
kundalini perché me ne sono interessato autonomamente :P)
Inoltre, lo script non l'ha fatto lui ma copiato e incollato, quindi è
all'autore originale che dovresti dirglielo... dubito che l'OP sappia
consapevolmente dove andare a metter le mani (anche perché, altrimenti,
non sarebbe venuto a chiedere aiuto qui).
-- 
"When you have eliminated the impossible, whatever remains, 
however improbable, must be the truth." 

 Non ho idea di cosa fare.
Al momento non ho modo di dedicarmi alla lettura del codice e aiutarti
nel riportarlo secondo gli standard web; se il tuo problema dovesse
perdurare fino a lunedì allora potrò darti una mano maggiore.
Ti consiglio cmq di valutare se integrare veramente qualcosa del genere,
se ti conviene davvero. Generalmente questo genere di cose non viene più
fatto, e se ne sconsiglia l'uso.


 non sarebbe venuto a chiedere aiuto qui).
Si presume e si spera che l'OP detto articolo se lo sia almeno *letto*,
quindi sia in grado di dire, ad esempio, "no questa cosa non la devo
aggiungere perché mi azzera il documento HTML".
Chiedo troppo?
Ciao,
Andrea

 Chiedo troppo?
Premesso che non voglio fare il "professorino" perché non mi piace e
soprattutto perché non ho le competenze necessarie, però, sai, mi stupisce
leggerti così acido verso una persona che ha chiesto aiuto... soprattutto
in virtù del fatto che tu sei quello che fino a ieri scriveva
"getelementbyname" e si chiedeva dove fosse l'errore... Boh.
-- 
Nando [?]
Apostolo della Prova

 "getelementbyname" e si chiedeva dove fosse l'errore... Boh.
Era sera tardi, il mio giorno numero 1 con JavaScript, e
soprattutto era tutto codice scritto da me, non preso da
articoli(che altrimenti mi sarei *letto*, almeno).
Ad ogni modo, la mia "acidità"(che poi è invece più che altro
"veemenza" nell'esprimere posizioni, ma in un voiceless media
come questo...) viene dal fatto che il signorino probabilmente
non se l'è nemmeno *guardato* l'articolo da cui ha preso il
codice e quindi non aveva *assolutamente* idea nè di quale
fosse il problema(e questo "va bene"... nel senso... chiedi e ti
verrà risposto) nè tantomeno di cosa dovesse fare il codice, in
teoria, per il quale chiedeva aiuto.
Quanto a me, ho *sempre* avuto un'idea più o meno definita di
quale parte del codice dovesse fare cosa... o mi sbaglio?
*QUESTO* mi ha dato fastidio, non il chiedere.
Ciao,
Andrea

 non viene più fatto, e se ne sconsiglia l'uso.
Grazie mille per l'attenzione e per le informazioni.
AC Sujan Singh
www.yogajap.com
 

 d'oca ;-)
Senza alcuna polemica....in pochi minuti di Google devi essere mooooooolto 
fortunato trovare risorse attendibili che ti diano una corretta 
informazione circa l'argomento Yoga (ora, purtroppo, davvero troppo 
inflazionato da improvvisati santoni che cavalcano la moda new age).
Credo che lo stesso possa valere per un qualsiasi argomento di cui una 
persona non conosce nulla: senza un'idea di come/cosa/dove cercare è più 
facile trovare informazioni lontane da quello che si cerca che non il 
contrario (IMHO).
AC Sujan Singh
www.yogajap.com
 

 quale parte del codice dovesse fare cosa... o mi sbaglio?
Te ne do atto. Ciò non toglie che mi sei sembrato un *tantino* aggressivo.
Vabbè, forse sono io che, consapevole dei miei enormi limiti, mi mantengo
sempre sul dolce /andante ma non troppo/.


 Chiedo troppo?
Temo di si.
Ma personalmente credo che sia anche normale.


 "getelementbyname" e si chiedeva dove fosse l'errore... Boh.
Non ho seguito il thread, ma concordo con te sul tono usato che mi
sembra del tutto fuoriluogo.


 *QUESTO* mi ha dato fastidio, non il chiedere.
Non è uno sviluppatore, né pare abbia intenzione di diventarlo a breve,
quindi è del tutto lecito il suo comportamento.


 Non hai detto "cassate", va tranquillo :)
Miiiiiiiiiiiii! Faccio progreeeessi!
:)


 errori introduci.
Posso chiedere una cosa?
A proposito di debug e alert, esistono in JavaScript dei cosi' detti IDE
per un debagging un po' piu' agevole?

 per un debagging un po' piu' agevole?
Esiste un debugger su Gecko, Venkman:
 
http://www.mozilla.org/projects/venkman/
E su IE/Win lo Script Debugger.
Mai usati nessuno dei due.
Per quanto riguarda gli IDE, c'è qualche estensione per Eclipse e roba del
genere. Ma che io sappia non è mai stato fatto un IDE esclusivamente per JS, e
soprattutto che venisse considerato "L'Editor" per eccellenza per tale
linguaggio.
Credo che un po' dipenda da vari fattori: il primo, che è IMVHO il linguaggio
più sottovalutato nel mondo dalla comunità di sviluppatori (pure quelli web),
che solo "ora" si stanno accorgendo di aver sbagliato giudizi (grazie alla
campagna promozionale "ajax"); il secondo che non tutti i browser implementano
Javascript, ma ognuno una sua versione, ergo non c'è un "linguaggio" solo da
tener conto; il terzo è che non devi considerare js a sè, ma nel contesto in
cui lo poni (spesso il browser) e cambiano molte cose variando il contesto.
Quarto, è che per quanti ce ne sono che sentono l'esigenza di un IDE per
javascript, ce ne sono altrettanti se non di più che non ne sentono affatto il
bisogno. O perché non lo usano in modo intensivo, o perché il loro modus
operandi non lo richiede.
-- 
- Se tu un Dio?
- N...no.
- E allora MUORI!
- Ray, se qualcuno ti chiede se sei un Dio, tu devi rispondere di sì!