我正在尝试解决此验证问题:
一般实体“trk”未定义,没有默认实体和对无法为其生成系统标识符的实体“trk”的引用。
这是我的代码:
<a href="http://www.linkedin.com/profile/view?id=189019016&trk=tab_pro"
class="thumbnail">
</a>
谁能看到问题可能是什么?
我正在尝试解决此验证问题:
一般实体“trk”未定义,没有默认实体和对无法为其生成系统标识符的实体“trk”的引用。
这是我的代码:
<a href="http://www.linkedin.com/profile/view?id=189019016&trk=tab_pro"
class="thumbnail">
</a>
谁能看到问题可能是什么?
Zenith 的回答指出了一般问题——&
表示 HTML 中转义字符序列的开始,因此验证器试图将其解析trk
为字符实体(事实并非如此)。&
s 需要被编码为实体本身以防止这种混淆。
在严格的 XHTML 中,这些后面需要跟着 unicode 数字条目(而不是像,等这样&#
的简写形式),所以. 当我难过时,我经常使用这个参考表。amp
hellip
&
&
因此,XHTML strict 的正确代码应该是:
<a href="http://www.linkedin.com/profile/view?id=189019016&trk=tab_pro"
class="thumbnail">
</a>
尝试将trk&
之前的替换为&
在经典 HTML 和 XHTML 中,&trk=
不允许使用 like 构造,因为它被正式解释为实体引用,并且不存在这样的实体。这实际上只是一种形式,因为浏览器不会那样做(或者在本世纪没有表现过),但是错误消息在验证时很烦人。
由于旨在处理这种常见情况的相当特殊的规则,HTML5 允许构造。但是,目前 HTML5 验证器在这里有一个错误,他们将其报告为错误。有一个验证器.nu 软件的实验版本已修复此错误:http: //qa-dev.w3.org :8888/
将来,您应该能够使用此类构造而不会出现验证错误,如果您使用<!doctype html>
(当然,这可能会导致其他验证问题。