我正在尝试在HTML5中验证validator.w3.org上的页面。一切都有效,除了3个脚本标签,下面是一个例子:
<script type="text/javascript">
alert('text');
</script>
我看不出我哪里出错了。以下是我从w3验证器得到的错误:
Line 212, Column 10: The text content of element script was not in the required format: Expected space, tab, newline, or slash but found < instead.
</script>
答案 0 :(得分:6)
对于HTML5,有效的脚本元素是:
<script src="path/to/script.js"></script>
或
<script>
...code goes here...
</script>
就是这样。如果需要,可以添加[type]
属性,但这不是必需的:
<script type="text/javascript" src="path/to/script.js"></script>
<script type="text/javascript">
...code goes here...
</script>
HTML属于.html
个文件,CSS属于.css
个文件,JS属于.js
个文件。将JavaScript保存在外部文件中还允许浏览器缓存脚本,以便只需加载一次。
对于XHTML,需要正确转义script
元素的内容。更好地替代HTML转义所有脚本数据(写<
是单调乏味的)是使用CDATA元素(字符数据的简称):
<script type="text/javascript">
/* <![CDATA[ */
...code goes here...
/* ]]> */
</script>
请注意,您的代码不包含]]>
的任何实例,因为它会立即关闭<![CDATA[ ]]>
元素。
使用多行注释,以便JavaScript不会尝试将元素解析为JavaScript。可以使用单行注释,但我更倾向于使用多行注释来防止插入换行符的任何可能性并将所有内容搞乱。