Por que não't os elementos do script de auto-fechamento funcionam?
Qual é a razão pela qual os navegadores não reconhecem corretamente:
<script src="foobar.js" /> <!-- self-closing script element -->
Só isto é reconhecido:
<script src="foobar.js"></script>
Isso quebra o conceito de suporte a XHTML?
Nota: Esta declaração está correcta pelo menos para todo o IE (6-8 beta 2).
1280
3
A especificação XHTML 1 diz:
С.3. Elemento Minimização e Conteúdo de Elemento Vazio
XHTML DTD especifica os elementos do script como:
Internet Explorer 8 e anteriores não suportam a análise de XHTML. Mesmo que você use uma declaração XML e/ou um doctype XHTML, o antigo IE ainda analisa o documento como HTML simples. E em HTML simples, a sintaxe de auto-fechamento não é suportada. A barra de corte é simplesmente ignorada, você tem que usar uma tag de fechamento explícita.
Mesmo navegadores com suporte à análise de XHTML, como IE 9 e posteriores, ainda analisarão o documento como HTML, a menos que você o sirva com um tipo de conteúdo XML. Mas nesse caso, o IE antigo não exibirá o documento de forma alguma!
Ao contrário do XML e XHTML, o HTML não tem conhecimento da sintaxe de auto-fechamento. Navegadores que interpretam XHTML como HTML não sabem que o caracter `/' indica que a tag deve ser de auto-fechamento; em vez disso interpretam-na como um atributo vazio e o analisador ainda pensa que a tag está 'aberta'.
Assim como
<script defer>
é tratado como<script defer="defer">
,<script />
é tratado como<script /="/">
.