奇怪的HTML验证错误

时间:2011-02-13 17:31:19

标签: javascript

我从这篇JavaScript获得了一个奇怪的HTML验证错误任何帮助,我认为它可能导致我正在使用的滑块函数中的错误...

<script type="text/javascript" charset="utf-8">
        sfHover = function() {
            var sfEls = document.getElementById("nav2").getElementsByTagName("LI");
            for (var i=0; i<sfEls.length; i++) {
                sfEls[i].onmouseover=function() {
                    this.className+=" sfhover";
                }
                sfEls[i].onmouseout=function() {
                    this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
                }
            }
        }
        if (window.attachEvent) window.attachEvent("onload", sfHover);
    </script>

错误是

  

错误:字符“;”不允许进入   属性规范列表

  

错误:元素“sfEls.length”   未定义

来自

  

for(var i = 0; i

  

错误:“sfEls.length”的结束标记   省略,但指定了OMITTAG NO

来自结束脚本标签

1 个答案:

答案 0 :(得分:6)

您的Javascript包含XML的特殊字符(<&) 因此,它是无效的标记。

您需要将其包装在CDATA部分中,这将阻止XML解析器解析其内容:

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

这些注释是必要的,以防止CDATA部分在无法识别它的浏览器中导致Javascript语法错误

相关问题