Newsgroup: it.comp.lang.javascript
Titolo: javascript in xhtml e doctype

Sale a tutti
dopo molto cercare ho trovato la causa del perche' del codice js, nulla 
di ecaltante, non venisse eseguito all'interno di una pagina web: il 
problema sta delle dichiarazioni !doctype ma non ne capisco il motivo...
allora, se la pagina inizia con questa dichiarazione:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	   "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
">
<html xmlns="
http://www.w3.org/1999/xhtml
" lang="en" xml:lang="en">
....
il codice js che segue all'interno del documento non viene eseguito.
se invece la pagina ha come intestazione:
<html>
<!doctype html public '-//W3C//DTD HTML 4.01//EN'
'
http://www.w3.org/TR/html4/strict.dtd
'>
....
il codice viene correttamente eseguito
Ora, mi chiedo, volendo utilizzare la prima forma (che mi pare piu'
corretta) come devo dichiarare l'esecuzione degli script, che sono tutti
file linkati esternamente col tag:
<script language="JavaScript" src="mioscript.js" type="text/javascript">
Ovviamente si parla di esecuzione con Gecko
saluti
Bed

 <script language="JavaScript" src="mioscript.js" type="text/javascript">
Ipotesi 2: ma stai scrivendo proprio cosě e hai dimenticato la chiusura del
tag oppure hai copiaincollato solo questa parte? Se manca la chiusura mi sa
che č questo il problema...
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 che č questo il problema...
no-no il tag e' ovviamente chiuso con </script> , tra l'apertura e la 
chiusura solo commenti /* ... */ relativi allo script esterno.
grazie cmq
Bed

In data Tue, 15 Mar 2005 15:35:29 +0100, bed ha scritto:
[CUT]
boh...
messo dentro tag head?
Posta la pagina incriminata (ripulita, con solo la parte essenziale) che
sono curiosissimo...
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 sono curiosissimo...
eccoti servito ;) con la prima intestazione commentata e la econda attiva
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	   "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
">
<html xmlns="
http://www.w3.org/1999/xhtml
" lang="en" xml:lang="en">
<head>-->
<html>
<!doctype html public '-//W3C//DTD HTML 4.01//EN' 
'
http://www.w3.org/TR/html4/strict.dtd
'>
<head>
<title>BedPage</title>
<link href="divelem.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="nn4_3col_header.css" type="text/css" />
<link href="menulyr.css" rel="stylesheet" type="text/css" />
<link href="home.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" src="miomenu.js" 
type="text/javascript"></script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<div id="header">...</div>
<div id="leftcol">
<div class="menulyr">
<script language="JavaScript" src="menustr.js" class="slideMenuText" 
type="text/javascript"></script>
</div>
</div>
<div id="content">...</div>
<div id="rightcol">...</div>
<div id="footer">...</div>
</body>
</html>

 eccoti servito ;) con la prima intestazione commentata e la econda attiva
[CUT]
Boh, forse sono io che non capisco...
ho rimosso il doctype e tolto il rem a quello iniziale, la pagina č qua:
 
http://www.criosoftware.it/bak/bed.htm
(ho creato i 2 js con un semplice alert).
Testato IE6sp1, mozilla 1.5, firebird 0.7, firefox 0.8 e 1.0PR, netscape
6.01, netscape 7.1, opera 7.21 e 7.54, funziona tutto perfettamente...
A questo punto devi dirci che versione gecko stai usando...


 A questo punto devi dirci che versione gecko stai usando...
Firefox 1.01
ciao
Bed

 che possa essere una cattiva sintassi nei CSS?...
Mi puzza anche a me...prova a togliere i js e a vedere se il problema
rimane. Controllato maiuscole-minuscole per i rules?
-- 
"e mai che mi sia venuto in mente
 di essere più ubriaco di voi
 di essere molto più ubriaco di voi"
									  F.D.A.

 che possa essere una cattiva sintassi nei CSS?...
E' una questione di CSS, javascript non c'entra niente.
Cambiando il doctype il browser interpreta e renderizza in modo diverso le
informazioni contenute nel codice di markup.
Quando imposti un doctype corretto, Firefox entra in modalità standard,
mentre se ne imposti uno secondo una sintassi errata entra in modalità
quirks (o semi-quirks, dipende dal tipo di doctype).
In modalità standard, le misure DEVONO avere necessariamente le unità di
misura. Non puoi mettere un "width:100" bensì un "width:100px", e dando
un'occhiata rapida al codice mi pare che da qualche parte ce ne hai un
paio.
Anche la proprietà clip si comporta diversamente. Se ben ricordo non deve
avere la virgola come separatore, basta lo spazio.
Inoltre hai fatto un po' di miscuglio con le unità di misura sullo stesso
elemento (pt, px, em..). Non che questo sia un "problema", però rende
difficoltosa la manutenzione e la leggibilità.
Va da sè che il discorso vale anche a runtime. In modalità standard, devi
impostare i valori con le unità di misura. Quindi, una cosa del genere:
var n=100;
obj.style.left=n;
Diventa:
var n=100;
obj.style.left=n+"px";
E così via.
Comunque, questo non è il NG più adatto per queste cose. Ti conviene andare
su it.comp.www.html o cercare su internet come scrivere codice di markup e
css secondo standard.
-- 
ZER0
~ The Tangent Universe collapsed 5980 days, 10 hours, 47 minutes and 16 seconds ago.
on air ~ "Celtic Dawn"

 css secondo standard.
Gia' fatto, ma non ne avevo ricavato molto, ora invece - diciamo per 
induzione - ho capito dove puo' risiedere il problema.
grazie a tutti
Bed

In data Tue, 15 Mar 2005 17:00:49 +0100, bed ha scritto:
[CUT]
Andando a monte: perché indichi dtd xhtml se non hai un solo tag
validabile?
Se segui questa strada, quantomeno:
a) converti i tag in minuscolo
b) chiudi tutti i tag (es. <link.../>)
c) metti id e class tra virgolette
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.