Newsgroup: it.lavoro.professioni.webmaster
Titolo: In JS non devo scrivere </p> ma <\/p> ??

Sto passando da un html quirk ad un html 4.01 transitional.
Non ho davvero capito questo punto (notare l'ancora che fa riferimento 
al punto):
http://www.htmlhelp.com/tools/validator/problems.html#script
Il codice javascript che abbia stringhe contenenti tag html deve essere 
modificato come all'oggetto di questo messaggio? Sì? E perché?
La barra / non vedo che problemi dia a javascript. Fosse \ capirei 
benissimo, ma / che problemi dà?
O il problema è di eventuali parser html stupidi che non fossero in 
grado di riconoscere il pezzo di codice javascript e non parsarlo come html?
Ma se è un problema di parser stupidi, perché supportare gli stupidi?
Non ho davvero capito il punto della questione, l'utilità, il rischio 
sventato facendo questa specie di escape delle barre.
Spero possiate illuminarmi.

 benissimo, ma / che problemi dà?
Che chiuderesti una tag che non è mai stata aperta e il validatore si 
incazza.

 Ma se è un problema di parser stupidi, perché supportare gli stupidi?
Molto probabilmente i moderni browser non daranno nessun problema (a 
volte sono dell'idea che sarebbe meglio se non cercassero di correggere 
gli errori...), ma il *validatore* naturalmente non può far finta di 
niente (poco conta se è assurdo controllare la fine di un tag soltanto 
con </ ... è lo standard e il validatore lo deve far rispettare)

 incazza.
Che cavolo di validatore è che non è in grado di riconoscere i tag di 
script e gestirli?

 con </ ... è lo standard e il validatore lo deve far rispettare)
Che cavolo di validatore è che non è in grado di riconoscere i tag di 
script e gestirli?
Non capisco perché debba cercare pedissequamente i tag, anche negli script.
Tra l'altro il problema si porrebbe anche con <pre><p></pre> .
Ma scherziamo? Da dove salta fuori l'idea che questo supposto validatore 
abbia il diritto di essere tanto stupido da non gestire opportunamente i 
tag e che il resto del mondo si adegui a lui quando è lui che deve 
gestire correttamente i tag?

 script e gestirli?
Ah tu indendi che formalmente il sorgente rispetta il DTD ma il 
validatore è stupido?
Io leggendo avevo l'impressione che usare un tag di chiusura in <script> 
non rispettasse la forma.
Alla fin fine devi solo controllare i gruppi "</" nelle sezioni <script> 
e lo puoi fare in maniera automatica.

 script e gestirli?
Cosa ti fa pensare che sia un limite del validatore e non una questione 
formale?
-- 
  Daniele Orlandi						つづく

 gestire correttamente i tag?
Scusa la domanda, ma cosa è che non gestisce opportunatamente? Puoi fare 
un esempio? 
Un validatore serve per validare un documento secondo uno standard.
Se il resto del mondo vuole che il suo documento sia valido, non vedo 
come possa fare, se non adeguandosi allo standard...

 un esempio? 
Ma no, nulla. Stavo solo cercando di validare/correggere il mio codice 
html dal momento che introducendo il doctype transitional 4.01 ho 
trovato qualche errore.
Ho trovato segnalata dal validatore w3c stesso questa pagina
http://www.htmlhelp.com/tools/validator/problems.html
che parla di errori comuni di validazione.
Lì parla del problema del problema del codice JS e dei tag chiusi.
Non mi è chiaro se devo aderire per forza o se non devo per forza se ha 
senso (e allora potrei farlo) oppure non ne ha (e allora lascerei stare).

 Lì parla del problema del problema del codice JS e dei tag chiusi.
Dice anche "the most common source of erroneous bug reports for the WDG 
HTML Validator" cioè non sono bug del validatore, è proprio una 
caratteristica controintuitiva di SGML.
Tu ti sei inalberato contro il validatore ritenendo che dovesse 
riconoscere come valido un codice che, a quanto pare, valido non è.

 riconoscere come valido un codice che, a quanto pare, valido non è.
Non ho capito. Cos'è che non è valido? JS contenente tag html?

PQ44CD wrote:

Come dovrebbe fare il parser a capire che la sequenza di chiusura del tag è 
quella vera o è contenuta in un pezzo di JavaScript?
Dovrebbe essere in grado di parsare il JS?
Ma da nessuna parte c'è scritto che l'applicazione SGML debba avere un 
parser JS.
E, passi il JS, se fosse TCL? Ruby? Whitespace?
Nel tag <script> può esserci qualunque linguaggio e non è obbligatorio 
saperlo interpretare.
È per questo motivo che bisogna fare escaping della sequenza che il parser 
si aspetta per chiudere il blocco.
La cosa anomala, se vuoi, è che l'escaping è delegato alla sintassi del 
linguaggio e non a quella del contenitore.
In ogni caso, comunque, dai un occhio alla sezione CDATA, è molto meglio per 
contenere degli script e l'unica sequenza che devi evitare è ]]>
Ciao,
-- 
  Daniele Orlandi						つづく

 quella vera o è contenuta in un pezzo di JavaScript?
Saltando tutto ciò che c'è fra il tag <script> e il tag </script>, no?

 Saltando tutto ciò che c'è fra il tag <script> e il tag </script>, no?
Nessuna risposta?

PQ44CD wrote:

Non ho collaborato alla scrittura di SGML né sono un esperto ma posso 
supporre che visto che (al contrario di XML) non è solo il tag <script> che 
puoi chiudere all'interno, il parser possa avere questa limitazione.


 Nessuna risposta?
Che vuoi che ti venga risposto, che nello strict un codice come
<foo>
</bar>
</foo> 
non è valido ma tu vorresti che lo fosse?

 stare).
Tutto dipende da te. Se vuoi che il tuo documento sia valido devi 
aderire; quindi prendere tutti i </ che si trovano all'interno di 
<script> </script> e sostituirli con <\/ (cioè fare l'escape)
Per completezza: il validatore può anche dire che una pagina è valida, ma 
se questa pagina ha degli elementi aggiunti dinamicamente tramite 
javascript, andrebbe validato anche il documento generato...
questo per dire che quello che è dentro <script> </... non è controllato 
dal validatore, quindi se ad esempio vengono chiusi dei tag mai aperti, o 
vengono inseriti degli elementi di blocco dentro a degli elementi 
inline... il validatore non se ne accorge, il file sembra valido, ma la 
pagina generata sicuramente non lo è.


Questo non esclude che (molto probabilmente) i browser moderni 
controllino la fine del tag <script> con </script>, ma il validatore 
*deve* comportarsi come dice lo standard

 per contenere degli script e l'unica sequenza che devi evitare è ]]>
L'OP sta tentando la validazione in HTML, non XHTML...
l'html non conosce il significato di <![CDATA[ ... ]]>

 questa sequenza di caratteri: </ 
Adesso sì che è chiaro, ti ringrazio.
Verifico di non avere tale situazione.

 l'html non conosce il significato di <![CDATA[ ... ]]>
Giusto, avevo in mente xhtml...
-- 
  Daniele Orlandi						つづく

PQ44CD ha scritto:

Va bene se sostituisco
document.write("</P>");
con
document.write("<"+"/P>");
?

 ?
Si.