未注册的 rel 属性值在锚点标签中的含义

4

我在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规范(此处)(此处),rel属性应该具有已注册/预定义的值。

  1. 是否有方法在HTML5中使用自定义值而不导致验证失败?
  2. HTML4文档类型是否也无效?
3个回答

8

您可以使用自定义属性:

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

它符合HTML5标准,但不符合HTML4或xHTML。

您可以像使用jQuery一样访问属性。

您可以在HTML5参考资料中找到更多信息。


谢谢你的回答。这正是我所需要的,也是我使用rel属性时所做的事情。JavaScript/jQuery可以访问这个属性的值,即使在非HTML5兼容的浏览器中也可以。因此它满足了我的目的。谢谢! - vulcan raven

2
有没有一种方法可以在HTML5中使用自定义值来表示rel,而不会导致验证失败?
微格式页面是维基百科。如果您确信已经正确地使用了rel,并且没有其他适当的rel值已经注册,您可以将自己的值添加为“建议”值。有关此操作的说明可以在此处找到:http://dev.w3.org/html5/spec/links.html#other-link-types 根据HTML5规范,这将使您的rel值有效。当然,自动验证器需要一些时间才能赶上这个步骤,但这只是一个技术问题。
HTML4的文档类型是否也无效?
不,它不是无效的。

感谢澄清。我想在同一域内(或者在我的情况下)确定当前页面和目标页面之间正确的关系值可能有些困难。我会采纳@ldiqual的建议。谢谢! - vulcan raven

-2

您可以使用 'a' 标签的任何其他属性,例如 'title'


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接