0

我刚刚通过 w3c HTML 验证器运行了我正在处理的网站的主页,它返回了 3 个错误和 2 个警告。我看过它们,但看不出它们为什么会引起问题。我已将它们粘贴在下面(我已删除 URL/字符串等,因为该站点尚未完全准备好公开)。顺便说一下,这是针对 XHTML Transitional 进行验证的。

UL 返回以下错误:end tag for "ul" which is not finished <ul id='tabs'></ul>

<ul id='tabs'> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat1" class="tab1" title="tab_title">
        <img alt="img_alt" src="img_src" /> 
        <span> 
            tab1_text
        </span> 
    </a>
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat2" class="tab2" title="tab_title">
        <img alt="img_alt" src="img_src" /> 
        <span> 
            tab2_text
        </span> 
    </a>
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat3" class="tab3" title="tab_title">
        <img alt="img_alt" src="img_src" /> 
        <span> 
            tab3_text
        </span> 
    </a>
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat4" class="tab4" title="tab_title">
        <img alt="img_alt" src="img_src" /> 
        <span> 
            tab4_text
        </span> 
    </a>
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat5" class="tab5" title="tab_title">
        <img alt="img_alt" src="img_src" /> 
        <span> 
            tab5_text
        </span> 
    </a>
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat6" class="tab6" title="tab_title">
        <img alt="img_alt" src="img_src" /> 
        <span> 
            tab6_text
        </span> 
    </a>
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat7" class="tab7" title="tab_title">
        <img alt="img_alt" src="img_src" /> 
        <span> 
            tab7_text
        </span> 
    </a>
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat8" class="tab8" title="tab_title">
        <img alt="img_alt" src="img_src" /> 
        <span> 
            tab8_text
        </span> 
    </a>
</li> 
</ul>

对于内联 javascript,我收到 2 个错误和 2 个警告都是针对同一件事的 - 我有一个带有 && 的简单 if 语句,并且验证器似乎将其视为 HTML 而不是 javascript:character "&amp;" is the first character of a delimiter but occurred as dataxmlParseEntityRef: no name

<script type='text/javascript'>
    if (weather_data != null && weather_data['data'] != null){
    display_weather();
}
</script>

javascript 位于文档末尾的正文关闭标记之前。如果您需要查看完整来源,请告诉我,我可以将其发送过来。

4

3 回答 3

1

XML 不支持内在 CDATA,因此& 符号在 XHTML 中具有特殊含义,而它们在 HTML 中没有,但您可能将 XHTML 作为 text/html 提供,因此请参阅Embedded Style Sheets and Scripts的兼容性指南

至于:

未完成的“ul”的结束标签

给定

<ul id='tabs'></ul>

列表必须至少包含一个列表项。我猜你正在用 JavaScript 填充它(因此你的第二个例子 a ul),但验证器并不关心这一点。

于 2010-06-01T14:07:13.780 回答
0

要验证内联 Javascript,您需要将内容包装在 CDATA 标记中,并添加 JS 注释以使其验证:

<script type='text/javascript'>
//<![CDATA[
if (weather_data != null && weather_data['data'] != null){
  display_weather();
}
//]]>
</script>

我检查了您在 W3C 验证器中发布的 HTML 列表片段,它成功验证为HTML 4.01 StrictXHTML 1.0 Strict。所以问题出在其他地方。您可以发布指向整个页面的链接吗?

于 2010-06-01T14:21:46.147 回答
0

不确定 UL 问题,但您可能希望将 CDATA 放在脚本周围。

http://www.w3schools.com/xml/xml_cdata.asp

于 2010-06-01T14:04:13.043 回答