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