我在validator.W3.org上收到以下错误
第70行,第26栏:字符“<”是分隔符的第一个字符,但是作为数据出现
if (remainingSeconds < 10) {
第70行,第26列:StartTag:无效的元素名称
if (remainingSeconds < 10) {
这是我使用的代码。
<script type="text/javascript">
function secondPassed() {
var minutes = Math.round((seconds - 30)/60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
</script>
如果我删除&lt;或改变&lt;到a =然后错误就消失了。
有人有想法吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
答案 0 :(得分:2)
您正在验证XHTML文档,因此you have to use CDATA markers around your script contents。
<script>
<![CDATA[
// JavaScript goes here
]]>
</script>
就我个人而言,我不知道为什么你会在这个时代使用XHTML,无论如何。
答案 1 :(得分:1)
如果您要验证为XHTML,请尝试将您的JavaScript包装在<![CDATA[]]>
块中:
答案 2 :(得分:1)
您正在使用严格的XHTML,因此如果您想将它们用作文本,则必须正确转义属于XML语法(几乎所有)的所有字符。在XHTML中,通常的方法是使用CDATA块以与HTML兼容的方式进行转义:
<script type="text/javascript">//<![CDATA[
function secondPassed() {
var minutes = Math.round((seconds - 30)/60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
//]]></script>
但是,有两个更好的修复:
<!DOCTYPE html>
),而不是XHTML <script type="text/javascript" src="second-passed.js"></script>
两者都是更好的做法。