Newsgroup: it.comp.lang.javascript
Titolo: Stranezza flusso codice

Perchè il seguente codice:
==================================================================
<div id='1' style='display: none;'></div>
<script language='javascript'><!--
	alert('xxxx');
	var ddiv1 = document.getElementById('1');
	ddiv1.style.display = '';		
	ddiv1.innerHTML = '1 elaborato con successo...<br>';	
	alert('yyyy');	
//--></script>
==================================================================
Non mi visualizza il secondo alert?
C'è forse qualche questione in merito all'innerHTML che fa "ignorare" il 
resto nella pagina?
Grazie.
-- 
Fabri
(Incredibile come si tenda a credere di piu` a Rossi. (cit.))

 Non mi visualizza il secondo alert?
Non l'ho neanche guardato con attenzione; ma copiato&incollato pari pari su
FF e IE6 funziona tranquillamente.
-- 
ZER0://coder.gfxer.web-designer/
~ ..ma in effetti il concetto di WYSYWYG (quello che vedi e' quello che
ottieni) si applica ai computer malissimo, cosi' come si applica alle
donne... (The Real Programmer)
on air ~ "Maki Kimura - Beyond The Bounds"

 Non mi visualizza il secondo alert?
Su che browser/piattaforma accade? Firefox 1.0/Linux lo visualizza.
IE potrebbe darti dei problemi per via dell'id numerico (probabilmente per
come gestisce "in casa" id, name e collezioni/array), usa sempre id che
cominciano per caratteri alfanumerici.
-- 
artemis.alpeia
Eh si', ragioniere, una volta qui era tutta campagna

 <div id='1' style='display: none;'></div>
Forse quel div con id="1" dà problemi a qualche browser? Sicuramente non è
corretto (l'id *deve* iniziare con una lettera, *non* può iniziare con un
numero).
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 Forse quel div con id="1" dà problemi a qualche browser? 
Ah, e' un uno? Pensavo fosse una elle.. strano che FF l'abbia digerito,
allora.
-- 
ZER0://coder.gfxer.web-designer/
~ Tutti quelli che credono nella psicocinesi, per favore alzino la mia
mano.


In verità non funzionava xchè IE o FF non capiscono, prima che l'evento 
onLoad del tag body si consumi, cosa sia il DIV con id 1.
Mi spiego.
Il seguente codice:
---------------------------------------------------------------
<div id='1'></div>
<script language='javascript'><!--
	 function pippo(){
      alert('primo alert');
      var ddiv1 = document.getElementById('1');
      ddiv1.innerHTML = '1 elaborato con successo...<br>';
      alert('secondo alert');
	 }
//--></script>
<a href="#" onClick="pippo();">Vai</a>
---------------------------------------------------------------
funziona perfettamente.
Mentre:
---------------------------------------------------------------
<div id='1'></div>
<script language='javascript'><!--
      alert('primo alert');
      var ddiv1 = document.getElementById('1');
      ddiv1.innerHTML = '1 elaborato con successo...<br>';
      alert('secondo alert');
//--></script>
---------------------------------------------------------------
Io in effetti pensavo che alcuni elementi si potessero controllare anche 
prima del caricamento completo della pagina, evidentemente non è cosi.
Secondo voi si puo' far qualcosa?
Ciao e grazie.


 prima del caricamento completo della pagina, evidentemente non è cosi.
A meno che il tag non si trovi _dopo_ lo script, non ci dovrebbero essere
errori. Altrimenti c'e' qualcos'altro che mi sfugge.
-- 
artemis.alpeia
Ahh, molto tempo fa non c'erano tutte queste automobili

 allora.
Sě, anche a me č sembrato strano infatti.
-- 
"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.

 Perchè il seguente codice:
[CUT]
Per completezza, il motivo xchè non funziona è che non accetta DIV vuoti.
Ciao.


 Per completezza, il motivo xchè non funziona è che non accetta DIV vuoti.
Per completezza, i "div vuoti" vengono accettati; e' l'ID di forma numerica
che non e' sintatticamente corretto.
Inoltre, come ti ho detto, quel codice preso paro paro, su FF e IE6
funziona. Quindi la domanda e': con quale browser lo stai testando?
Quale browser ha un bug talmente grosso da "non accettare i div vuoti" ? 
E siamo sicuri che l'errore non sia altrove nello script? Perche'
risottolineo che quel codice, preso a se' stante, va' (magari cambiare ID
non sarebbe una cattiva idea).
-- 
ZER0://coder.gfxer.web-designer/
~ "Ma non e' che l'ho cancellate, le ho messe nel cestino..!"
(Linda)

 Sě, anche a me č sembrato strano infatti.
Ammetto di non averlo provato su Mozilla o Netscape, magari loro sono un
po' piu' ferrei di FF.
-- 
ZER0://coder.gfxer.web-designer/
~ "In svizzera noi non avevamo il campeggio, ma il Lager."
(Domenico, durante una discussione sui campeggi per bimbi)

 E siamo sicuri che l'errore non sia altrove nello script?
Lo script è TUTTO nel post.
Col mio ultimo post ho cercato di dare una motivazione, non accademica 
bensì pratica e funzionale, che mi ha permesso di andare avanti, penso 
sia utile a chi più avanti googlerà cercando un errore simile.
Grazie a tutti.


 sia utile a chi più avanti googlerà cercando un errore simile.
Cio' sarebbe vero se si trattasse di un reale bug applicativo; ma
l'anomalia si verifica solo con te, il che significa che il nocciolo della
questione e' altrove.
-- 
ZER0://coder.gfxer.web-designer/
~ "Massi' che e' uno standard, e' uno standard proprietario."
(Gio')

 solo questo - contenuto:
http://www.criosoftware.it/TestF.htm
Testato: FF1.0pr - Firebird 0.7 - Firebird 0.6 - Mozilla 1.5 (poi mi sono
fermato)...ovviamente anche IE6sp2. Tutto ok.
-- 
"e mai che mi sia venuto in mente
 di essere più ubriaco di voi
 di essere molto più ubriaco di voi"
									  F.D.A.

fermato)...ovviamente anche IE6sp2. Tutto ok.
Su Mozilla 1.73 e Opera 7.23 funziona :-)
'bye

 questione e' altrove.
Non necessariamente chi googla in cerca di aiuto insegue "reali" bug 
applicativi, come me in questo caso. Personalmente a volte mi fermo 
all'empiricità delle soluzioni, causa (e lo saprete bene anche voi) il 
poco tempo a disposizione.
Ciao.


 poco tempo a disposizione.
Forse mi sono spiegato male: intendo dire che se con dei browser ho un
comportamento anomalo, per colpa di come io ho scritto il codice, tendo a
capire dove sta l'errore nel codice e NON a cercare un "workaround" per
aggirare il comportamento.. Perche' questa non e' una soluzione, e - cosa
ancora piu' importante - non ti permette di capire cos'e' che hai
sbagliato, e quindi imparare dai tuoi errori.
-- 
ZER0://coder.gfxer.web-designer/
~ "Nella vita uno raccoglie ciò che semina.
Ma per seminare bisogna chinarsi, e prenderlo nel culo un attimo."

 
-- 


 punto e basta.
Solo adesso mi rendo conto di quanto dici. Il tuo file html e' tutto li'?!?
Cioe' la tua pagina  manca di tag fondamentali: <html>, <head>, <body>, e ti
meravigli che poi non venga trovato un elemento del DOM?!?
-- 
artemis.alpeia
Si avvisano gli inquilini dei piani dispari che sara' tolta la luce dalle
8,00 alle 13,00

 meravigli che poi non venga trovato un elemento del DOM?!?
Si in effetti mi rendo conto che l'errore è, nella sua banalità, 
sconcertante.
Evidentemente tutte le volte che, non strutturando bene la pagina, le 
cose mi funzionavano lo facevano intuendo implicitamente gli elementi.
:-)


 ma mai mi ero inbattuto in un simile comportamento, 
Il che non significa che dovevi perseguire errando..
-- 
ZER0://coder.gfxer.web-designer/
~ Come devo regolare la stampante laser per stordire?
(How do I set a laser printer to stun?)