Newsgroup: it.comp.www.html
Titolo: Commento Condizionale ' if ', errore di convalida

ciao 
faccio uso di un Commento Condizionale  "if"
la convalida xhtml 1.0 Trans di VWD2005 
mi da errore ("non ci può essere testo dentro il tag <head>")
non uso il doppio trattino nella sintassi,
se lo uso, non ho errori di convalida,
ma il commento condizionale non funziona
idee?
QUESTO ESATTAMENTE IL MIO CODICE SINTETIZZATO:
<head>
<script type="text/javascript">
	function myfunc()
	blah blah   codice per qualsiasi browser   blah blah
</script>
<script type="text/javascript">
<![if lt IE 5.5]>
	function myfunc()
	blah blah   codice per IE 5.5 soltanto   blah blah
<![endif]>
</script>
</head>
--
Newsgroup robomoderato - gli articoli vengono approvati automaticamente

 </script>
dovresti fare:
<![if lt IE 5.5]>
<script type="text/javascript">
//<![CDATA[
   function myfunc()
	blah blah   codice per IE 5.5 soltanto   blah blah
//]]>
</script>
<![endif]>
ma io consiglierei una soluzione direttamente da JS, e cioč:
<script type="text/javascript">
//<![CDATA[
if( <controllo del browser> )
{
   function myfunc()
	blah blah   codice per IE 5.5 soltanto   blah blah
}
//]]>
</script>




non ne esco, anzi ci sono fino al collo
il tuo suggerimento con l'aggiunta nei posti indicati di 
//<![CDATA[
//]]>
lascia le cose ESATTAMENTE come erano (errore di convalida)
la situazione migliore che raggiungo č questa
<head>
<script type="text/javascript">
	function myfunc()
	blah blah   codice per qualsiasi browser   blah blah
</script>
<![if lt IE 5.5]>
<script type="text/javascript">
	function myfunc()
	blah blah   codice per IE 5.5 soltanto   blah blah
</script>
<![endif]>
</head>
ed il risultato č
- funziona dappertutto
- purtroppo la convalida xhtml 1.0 Trans di VWD 2005 
mi da errore ("non ci puň essere testo dentro il tag <head>")
causato ovviamente dai commenti condizionali
-------------------------------------
a peggiorare le cose c'č il fatto che nel codice js che uso
dentro il file htm,  ricorro ai segni di maggiore e minore   <    >
per delle valutazioni,
e il w3c validator me li segnala come errori  
---------------------------------------
sto pensando a portare il codice .js su un foglio esterno,
ma credo che il mio codice sia un po' complicato,
cioč in un foglio esterno, diciamo a "distanza", i comandi
  document.body.offsetWidth
  document.getElementById("pippo").style.left
non so farli funzionare
NEL HTM IL CODICE E' ATTUALMENTE QUESTO
<script type="text/javascript">
function myfunc()
{
  if (document.body.offsetWidth > 1000)
    document.getElementById("pluto").style.left = 25 + "px"; 
  if (document.body.offsetWidth > 1000)
    document.getElementById("pippo").style.left = 190 + "px"; 
}
window.onload = myfunc;
</script>
<![if lt IE 5.5]>
<script type="text/javascript">
function myfunc()
{
  if (document.body.offsetWidth > 1000)
    document.getElementById("pluto").style.left = 35 + "px"; 
  if (document.body.offsetWidth > 1000)
    document.getElementById("pippo").style.left = 180 + "px"; 
}
window.onload = myfunc;
</script>
<![endif]>
-------------------
come costruire questo file "esterno.js"   ? 
oppure
come tornare dentro l' htm e combattere con la convalida
degli    <![endif]>  e  degli        <     >        ?   
--------------------
grazie


 come costruire questo file "esterno.js"   ?
<!--[if lt IE 5.5]>
 <script type="text/javascript" src="ie.js" />
<![endif]-->
Poi in ie.js metti il javascript senza tanti fronzoli:
function myfunc()
{
 if (document.body.offsetWidth > 1000)
    document.getElementById("pluto").style.left = 35 + "px";
 if (document.body.offsetWidth > 1000)
    document.getElementById("pippo").style.left = 180 + "px";
}
window.onload = myfunc;
Bye.



così come mi hai detto 
su ie5.5 non funziona 
(cioè in ie5.5 non accade NULLA dei comandi
con cui ho istruito il .js)
sugli altri browser
funziona solo parzialmente, cioè:
1)
c'è una diversità di comportamento alle istruzioni dentro i .js
tra i tre browser chiamati a provare la pagina
da dentro VWD 2005 
e 
gli stessi browser che chiamano 
la pagina semplicemente da Esplora Risorse cliccando sul file;
non elenco queste diversità 
2)
da fuori VWD
provando la pagina con i tre browser cliccando sul file da Esplora Risorse,
alcuni elementi che io ho chiamato qui "pluto" e "pippo" 
in verità sono dei Div e sono più di due, 
ed ora non rispondono tutti ai comandi
in particolar modo al  left
document.getElementById("pippo").style.left
(dove "pippo" e un div che contiene altri div ed una table)
 
3)
da dentro VWD
solo su ie6 (no ff e opera) invece funziona tutto
nota:
ricordo che lo stesso codice (ora separato nei due file .js)
quando era nell <head> (costruito come indicato nel penultimo post)
funzionava tutto, anche su ie5.5 a proposito del quale mi dici
che la sintassi dell if non può funzionare
(era la Convalida a non passare)
-------- il file mio.htm è attualmente così ---------------
<head>
<script type="text/javascript" src="sposta.js">
</script>
<!--[if lt IE 5.5]>
 <script type="text/javascript" src="sposta55.js">
</script>
<![endif]-->
</head>
--------- il file sposta.js  è così  ---------------------------------
function myfunc()
{
 if (document.body.offsetWidth > 1000)
    document.getElementById("pluto").style.left = 35 + "px";
 if (document.body.offsetWidth > 1000)
    document.getElementById("pippo").style.left = 180 + "px";
}
window.onload = myfunc;
--------- il file sposta55.js  è così ---------------------------------
function myfunc()
{
 if (document.body.offsetWidth > 1000)
    document.getElementById("pluto").style.left = 25 + "px";
 if (document.body.offsetWidth > 1000)
    document.getElementById("pippo").style.left = 160 + "px";
}
window.onload = myfunc;
-------------------------------------------------
i files   mio.htm,   sposta.js,   sposta55.js   
sono nella stessa cartella di mio.htm


 funziona solo parzialmente, cioè:
Sugli altri browser dovrebbe caricare solo il primo js, perche` il secondo 
e` riservato a IE <5.5 (su IE) e visto come un normale commento (tutti gli 
altri)
 
Per il resto, non so cosa sia VWD, quindi non so cosa "combini" con le 
pagine.
Bye.


se sapessi...
ora va tutto (quasi in lacrime)
intanto VWD č Visual Web Developer, l'ambiente della ms che ha sostituito
Frontpage
su lte 5.5, in questi post mi ero sbagliato a scrivere 
in mente avevo sempre ben presente 5.0 ed i comandi sono per il 5.0
identificato appunto con lt 5.5
le diverse anomalie di comportamento dopo il tuo suggerimento 
erano dovute ad un id mal nominato( myDiv3  e  mydiv3
senza la maiuscola), che su ie funzionava ugualmente, su ff  e  opera no
il tuo costrutto
<!--[if lt IE 5.5]>
 <script type="text/javascript" src="ie.js" />
<![endif]-->
va bene ed uso questo (perchč non da' errori di convalida)
va bene anche
<![if lt IE 5.5]>
 <script type="text/javascript" src="ie.js" />
<![endif]>
perň dava errori nella convalida
ho esportato bene le function sui file .js
(credevo che si sarebbero rese necessarie delle variabilone 
da passare alle function, invece no, meglio cosě...)
perň con ie 5.0 che č su w98
il .js  funziona solo se una volta aperto con Notepad di w98
ci si toglie all inizio questo
ď»ż
e tale file pulito da ciň viene ricaricato sul sito;
cosě sul browser 5.0 funziona
col .js generato da VWD su XP, senza pulizia, non andava
č tutto? direi di sě... mille grazie


 col .js generato da VWD su XP, senza pulizia, non andava
A occhio e croce credo si tratti del BOM di Unicode. Probabilmente VWD lo 
aggiunge in automatico a tutti i file che salvi, ma 98 non sa cosa sia (e` 
troppo vecchio) e pensa sia un file binario.
Bye.
