我从这篇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>
Run Code Online (Sandbox Code Playgroud)
错误是
错误:字符";" 不允许在属性规范列表中
和
错误:元素"sfEls.length"未定义
从线
for(var i = 0; i
和
错误:省略了"sfEls.length"的结束标记,但指定了OMITTAG NO
从结束脚本标记
您的Javascript包含XML(<和&)的特殊字符.
因此,它是无效的标记.
您需要将其包装在CDATA部分中,这将阻止XML解析器解析其内容:
<script type="text/javascript">
//<![CDATA[
...
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)
注释是必要的,以防止CDATA部分在无法识别它的浏览器中导致Javascript语法错误