Palavras-chave: Javascript, HTML, XHTML, SVG, XML, CDATA, válido, validator
Você mudou suas páginas de HTML para XHTML e agora elas não validam mais por causa do Javascript. O que acontece?
No HTML, todo o conteúdo da tag <script>
é considerado texto normal (CDATA – Character Data) e é simplesmente ignorado pelo parser HTML. Nenhum <
ou &
que for usado no Javascript vai ser considerado início de tag ou de entidade.
Já no XHTML e outros formatos derivados do XML como o SVG, a tag <script>
é uma tag como outra qualquer, que pode ter outras tags dentro dela. Seu conteúdo é analisado pelo parser. Por isso qualquer <
encontrado no Javascript vai ser interpretado como início de tag e vai dar erro.
Tudo o que você precisa fazer, é dizer ao parser que o seu Javascript é CDATA, ou seja, texto normal que não deve ser interpretado como XML. Tem uma tag especial para isso:
<![CDATA[ ... ]]>
Tudo o que estiver dentro dessa tag feia vai ser protegido. Então basta colocar todo seu código dentro dela:
<script type="text/javascript"> // <![CDATA[ alert("Funcionou!") // ]]> </script>
Note que as tags de início e fim do CDATA foram comentadas, assim evita-se o problema de o Javascript tentar interpretá-las também.
Nossa! Valeu. tava passando um sufoco aqui.
Opa, muito obrigado!
No W3C ensina o uso do CDATA mas mesmo assim ele tava dando fail no Markup Validation… Eles nao ensinam que tem que colocar os // para ficar como comment.
Agora validou. Obrigado amigo!
O texto é velho (2006) mas o conteúdo ajuda muito :D
Parabéns , esse “truque”, deu certo.
Ops!
mas dava problemas no IE.
Obrigado! Eu estava tentando usar