锚标记中 rel 属性的未注册值

Posted

技术标签:

【中文标题】锚标记中 rel 属性的未注册值【英文标题】:Unregistered values of rel attribute in anchor tag 【发布时间】:2012-02-10 14:54:14 【问题描述】:

我在 jQuery 中将 rel 值用于参数化 (#!hashbang) AJAX 调用。

<a id='_qualifier' rel='telephony' href='contact.php'>contact</a>

并使用 jQuery:

var hashbang = "#!"+$("#_qualifier").attr('rel'); //gives desired result=>"#!telephony"

但是,当我在 validator.w3.org 上验证页面时,它给了我错误:

元素 a 上属性 rel 的错误值 #telephony:关键字 #telephony 未注册。

我搜索了一下,根据 html5 规范 here 和 here,rel 属性应该具有注册/预定义的值。

    是否可以在 HTML5 中为 rel 使用自定义值而不会导致验证失败? 它对 HTML4 文档类型也无效吗?

【问题讨论】:

【参考方案1】:

您可以使用自定义属性:

<a href="#" data-something="telephony">...</a>

它符合 HTML5,但不符合 HTML4 或 xHTML。 您将像使用 jQuery 一样访问该属性。

您可以在the HTML5 reference找到更多信息。

【讨论】:

感谢您的回答。这正是我需要的,也是我使用 rel 属性所做的。即使在不兼容 HTML5 的浏览器中,javascript/jQuery 也可以访问此属性的值。因此,它实现了我的目的。谢谢!【参考方案2】:

是否有一种解决方法可以在 HTML5 中为 rel 使用自定义值,而不会导致验证失败?

微格式页面是一个 Wiki。如果您对正确使用rel 感到满意并且没有其他适当的 rel 值已经注册,您可以将您自己的值添加为 Proposed 值。可以在此处找到有关操作的说明:http://dev.w3.org/html5/spec/links.html#other-link-types

根据 HTML5 规范,这将使您的 rel 值有效。当然,自动验证器可能需要一些时间才能赶上这一点,但这只是技术问题。

它对 HTML4 文档类型也无效吗?

不,不是。

【讨论】:

感谢您的澄清。我想确定同一域(或在我的情况下)内当前页面和目标页面之间关系的正确值将是一个延伸。我会接受@ldiqual 的建议。谢谢!【参考方案3】:

您可以使用“a”标签的任何其他属性,例如。 '标题'

【讨论】:

属性有自己的含义和效果;例如,title 属性值通常在鼠标悬停时显示为工具提示。

以上是关于锚标记中 rel 属性的未注册值的主要内容,如果未能解决你的问题,请参考以下文章

没有 href 属性的锚标记是不是安全?

没有 href 属性的锚标记是不是安全?

如何使用 querySelector 在锚标记的 href 属性末尾定位哈希?

锚标记目标属性中_self、_top和_parent之间的区别

锚标记禁用颜色属性不起作用?

锚标记的数据绑定 href 属性