头部标签内的锚点标记?

11

我希望我的网站有资格获得Google+直接连接

因此在搜索一番后,我找到了这个Google支持页面,该页面已经被编辑过。
通过WayBack Machine查看提供这些说明的Google支持页面

您可以通过在网站上插入一小段代码,然后将该网站列为Google+页面“关于”部分中的主链接,直接链接您的网站。例如,如果您的Google+页面的主链接设置为www.pagewebsite.com,则您可以通过在网站HTML的标签中放置以下代码片段来创建双向链接:

<a href="https://plus.google.com/{+PageId}" rel="publisher" />

是什么原因?在 head 标签内放置锚点标签?

我以为在 head 内只能使用 title/meta/link 标签。

在 head 标签中放置上述代码片段是否合法?


2
我认为应该是一个 link 标签。 - SeinopSys
请参考以下链接:https://dev59.com/w3I-5IYBdhLWcg3w-9sK?rq=1 - Sridhar R
谷歌页面中的代码片段显示了一个锚标签。 - Danield
2
我之前在谷歌的开发文档中看到过其他代码片段错误...似乎是有人匆忙发布,或者至少没有仔细校对。 - albert
3个回答

17

我认为Google的文档中有一个错误,应该使用<link>标签,像这样:

<link href="https://plus.google.com/{+PageId}" rel="publisher" />
你可以在https://developers.google.com/structured-data/testing-tool/上测试它是否有效。将<link>标签包含在你的网站中,并使用此工具查看Google检测到的内容。有一个名为"发布者"的部分,你可以查看Google是否检测到了正确的信息。
我在我的网站上使用<link>,Google检测到了正确的值。

1
在任何HTML规范中,head内部的a元素都是无效的。我不知道为什么谷歌会告诉你这样做,但是他们的软件可能实际上正在寻找这样的标记。
在浏览器中的实际情况是,a标签隐式关闭了head元素(如果您在浏览器的开发人员工具中查看文档树,可以看到这一点)。这并不像听起来那么糟糕,因为其他应该在head中的元素仍将正常处理。例如,即使将title元素放置在body中,它也能正常工作。说实话,将文档分成headbody只是形式上的区分。
标签<a href="https://plus.google.com/{+PageId}" rel="publisher" />仅被视为起始标签,可能会带来一些意外惊喜,因为文档的开头将位于链接内(该链接可能延伸到文档的末尾!)。只有当页面以XML内容类型提供时,该标记才被视为“自闭合”。因此,如果您被迫使用这样的元素,请至少使用真正的结束标记进行编写。
<a href="https://plus.google.com/{+PageId}" rel="publisher"></a>

对于可访问性和可用性来说,这仍然是不好的,因为空链接可能仍然参与制表顺序等。


0
使用链接标签是在标题中正确(且有效)的方法:
<link href="https://plus.google.com/{+PageId}" rel="publisher" />

如果您在按照指示(将品牌页面链接到您的网站)时坚持使用逐字逐句的锚点标签,那么您将为未来的某些事情埋下隐患。

实际上,我们刚刚经历了这种情况。似乎从iOS 8.x开始,移动Safari会看到这个锚点标签并将其(以及其下方的代码!)移动到正文中。这破坏了我们放置的智能横幅广告。

我们转而使用链接标签,并验证Google仍然检测到正确的值。


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