I have some javascript that is embedded in the html file like this
<html>
<head>
<script>
// and the script runs here
</script>
</head>
<body></body>
</html>
And it has a line like this
if((os == 'Mac')&&((br == 'Safari')||(br == 'Chrome')))
Everything goes OK (which means the script works), but the validator is screaming:
... character "&" is the first character of a delimiter but occurred as data
... This message may appear in several cases: -You tried to include the "<" character in your page: you should escape it as "<" -You used an unescaped ampersand "&": this may be valid in some contexts, but it is recommende开发者_JAVA百科d to use "&", which is always safe. -Another possibility is that you forgot to close quotes in a previous tag.
It seems ridiculous to replace all & with &. How can I get rid of that error?
If you are using XHTML, you need to enclose your inline scripts within a CDATA section:
<script type="text/javascript">
// <![CDATA[
document.write("&");
// ]]>
</script>
Further reading:
- About.com: Javascript and XHTML
- Codehouse.com: Making JavaScript Compatible with XHTML
- Wikipedia: CDATA
精彩评论