PDA

View Full Version : Bug di Internet Explorer con XHTML


VegetaSSJ5
18-06-2005, 20:11
Ciao ragazzi, sto sviluppando un sito per un esame pe l'università e mi sono imbattuto in questo bug di internet explorer. Dico subito che con firefox è tutto a posto, infatti uso questo come browser. Vado subito al dunque: secondo lo standard xhtml (1.1 per l'esattezza) i tag vuoti devono avere questa sintassi ed in particolare il tag script deve essere del tipo

<script type="text/javascript" src="file.js" />

Aprendo la pagina contenente questo tag con internet explorer lo schermo è bianco, eppure visualizzando il sirgente dal menu Visualizza->HTML sembra essere tutto a posto. Il fatto è che internet explorer poichè non vede il tag di chiusura di script, ovvero </script>, interpreta tutto ciò che viene dopo il tag script come contenuto di quel tag. Questo bug si può risolvere velocemente inserendo il tag di chiusura dopo script così

<script type="text/javascript" src="file.js" /></script>

ma se scrivo questo la pagina non viene più validata dal validatore w3c. Provare per credere.

anx721
18-06-2005, 21:59
per farlo validare prova a scrivere:

<script type="text/javascript" src="file.js"></script>

VegetaSSJ5
19-06-2005, 11:04
per farlo validare prova a scrivere:

<script type="text/javascript" src="file.js"></script>
doh! scusa avevo fatto copia incolla... :doh:

VegetaSSJ5
19-06-2005, 11:09
anx721 come hai detto tu funziona ed è validato. mannaggia a me e quando faccio copia/incolla! :muro: che figura di merd@...
cmq resta il fatto che ie non supporta la chiusura del tag script in quel modo...

lombardp
19-06-2005, 11:52
anx721 come hai detto tu funziona ed è validato. mannaggia a me e quando faccio copia/incolla! :muro: che figura di merd@...
cmq resta il fatto che ie non supporta la chiusura del tag script in quel modo...

In questo stesso istante indosso la T-shirt di Firefox, ma devo ammettere per una volta che IE rispetta perfettamente la specifica XHTML del W3C.

Se apri il DTD di XHTML-1.0-strict, che trovi QUA (http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd), puoi facilmente osservare che il tag SCRIPT non può essere scritto nella forma abbreviata (quella con il /> alla fine) come ad esempio IMG.

Questo è come è definito il tag SCRIPT:


<!ELEMENT script (#PCDATA)>
<!ATTLIST script
id ID #IMPLIED
charset %Charset; #IMPLIED
type %ContentType; #REQUIRED
src %URI; #IMPLIED
defer (defer) #IMPLIED
xml:space (preserve) #FIXED 'preserve'
>


E questo il tag IMG:


<!ELEMENT img EMPTY>
<!ATTLIST img
%attrs;
src %URI; #REQUIRED
alt %Text; #REQUIRED
longdesc %URI; #IMPLIED
height %Length; #IMPLIED
width %Length; #IMPLIED
usemap %URI; #IMPLIED
ismap (ismap) #IMPLIED
>


Come noterai c'è la keyword EMPTY.

VegetaSSJ5
19-06-2005, 12:29
addirittura!! :eek:
questo non lo sapevo, vorrà dire che in futuro non scriverò più il tag script nella forma abbreviata.