3

在我的网站上,我使用 jquery 循环插件来制作带有寻呼机的幻灯片。这个例子: http: //malsup.com/jquery/cycle/pager.html

因此,在我的文档的开头,我有一个类似于以下内容的脚本:

<script type="text/javascript">
$('#s4').before('<div id="nav">').cycle({ 
    fx:     'turnDown', 
    speed:  'fast', 
    timeout: 3000, 
    pager:  '#nav' 
});
</script>

我的文档类型是 XHTML Strict。

当我尝试验证页面时,我收到以下错误:“文档类型不允许此处的元素“div””和“省略了“div”的结束标记,但指定了 OMITTAG NO”,因为 div 标记未关闭.

有没有办法使用 jquery 并让它验证?

4

3 回答 3

8

如果您将 HTML 注释标签放入您的脚本块,验证器将忽略该代码块并正确验证。

<script type="text/javascript">
<!--
$('#s4').before('<div id="nav">').cycle({ 
    fx:     'turnDown', 
    speed:  'fast', 
    timeout: 3000, 
    pager:  '#nav' 
});
//-->
</script>
于 2009-05-19T14:23:12.127 回答
8

实际上,您的代码未验证的原因是某些字符不允许出现XHTML(例如“ <”等),因此必须将它们包装在CDATA部分中XHTML(由于XML解析规则的严格性质)。HTML评论标记(特别是双破折号“ --”)也是不允许的,也不应该出现在SCRIPT块中,因为它们不是有效的可理解的 JavaScript。HTML因此,您应该将代码包装在“CDATA 标记部分”中,而不是使用注释标记,以通过验证器而不是混淆 JavaScript 引擎:

<script type="text/javascript">
//<![CDATA[
$('#s4').before('<div id="nav">').cycle({ 
    fx:     'turnDown', 
    speed:  'fast', 
    timeout: 3000, 
    pager:  '#nav' 
});
//]]>
</script>

请查看以下页面以获取更多信息:

  1. XHTML 1.0 推荐:4.8。脚本和样式元素
  2. 在 XHTML 文档中正确使用 CSS 和 JavaScript
于 2009-05-19T20:30:25.020 回答
1

您可以通过执行以下操作来消除错误:

$('#s4').before('<' + 'div id="nav">').cycle({ ...

这应该可以防止验证器检测到您的脚本标签中的任何 HTML。我 - 我会忍受这个错误,因为我知道这是验证器的问题,而不是我的代码。

于 2009-05-19T14:13:01.320 回答