Javascript中的标记验证错误

时间:2014-03-24 19:41:05

标签: javascript validation syntax-error markup

我在标记验证中收到此错误:

警告第23行,第23栏:字符“<”是分隔符的第一个字符,但是作为数据出现

for (var i = 0; i < array.length; i++) {

“&lt;”是否有问题以下js中的字符?

function preloadImages(array) {
if (!preloadImages.list) {
    preloadImages.list = [];
}
for (var i = 0; i < array.length; i++) {
    var img = new Image();
    img.src = array[i];
    preloadImages.list.push(img);
}
}

1 个答案:

答案 0 :(得分:2)

看起来您的文档是XHTML并且您的Javascript是内联的。至少你似乎在验证XHTML。由于XHTML相当严格且更接近XML,<被解释为新标记的开头并使验证者感到困惑。

有很多方法可以解决这个问题:

  • 使用HTML5代替XHTML;实际上,除非你有充分的理由坚持使用XHTML,否则这通常是最好的选择。它被所有主流浏览器所理解,并且是最新且最现代的doctype,它允许Web 2.0的所有酷炫新功能。 HTML5的doctype如下所示:

    <!DOCTYPE html>
    <html>
    ....
    
  • 不要内联您的Javascript,而是将其添加为外部资源。无论如何,无论你使用什么doctype,你都应该一直这样做:

    <script type="text/javascript" src="yourScript.js"></script>
    
  • 将脚本包含在CDATA块中:

    <script type="text/javascript">
    <![CDATA[
        // your code
    ]]>
    </script>
    

您可以阅读doctypesXHTML了解更多详情。

相关问题