Adobe Search&amp; Promote非标准<noindex>标记</noindex>

时间:2014-09-02 19:02:20

标签: html html5 adobe standards standards-compliance

我正在处理的网站使用Adobe Search&amp; Promote(SP)作为其内部网站索引和搜索工具。

我需要排除每个网页的公共部分不被SP编入索引(例如标题,导航,页脚),因为它们在每个页面上都是相同的。

SP's documentation声明如下:

  

&#34;为了防止搜索单个网页的某些部分,您可以将页面的某些部分排除在索引之外。使用<noindex></noindex>标记将文本环绕。如果要从搜索中排除导航文本,此方法很有用。&#34;

当然,<noindex>不是标准的HTML标记/元素。

我是否应该在浏览器中注册/创建此假标签时使用javascript或其他内容,因此我不必担心由于非标准HTML标记悬而未决而导致的任何奇怪行为我的代码?或者我应该不关心,因为浏览器会忽略这个不存在的元素?

注意:这个<noindex>元素绝对不需要设置样式。它只需要包含HTML中的内容。

2 个答案:

答案 0 :(得分:1)

您无需做任何事情。浏览器应该会忽略未知标记,但是他们会这样做,因此他们会将<noindex>foo</noindex>视为foo。嗯,不太好。从技术上讲,现代浏览器在DOM中构造一个元素节点(HTMLUnknownElement类型)。但该元素没有关联的默认样式,也没有相关的操作,因此它实际上是一个虚拟元素,仅代表其内容。

可以使用客户端JavaScript删除这些元素节点,但这是非常不必要的。

唯一真正的风险是某天某些规范或某些浏览器或某些网络索引机器人可能会开始将noindex视为具有某些已定义含义的真实元素,可能具有默认呈现和默认功能。如果这些与您的预期不同,那么您将遇到麻烦。但这是一个相当小的风险,似乎你没有选择。

答案 1 :(得分:1)

虽然它没有在文档中,但我们的团队咨询了Adobe顾问。他告诉我们,我们可以使用'noindex'类而不是<noindex>元素。他甚至建议我们使用课程而不是标签。

虽然有警告,'noindex'类仅适用于<div>元素,但不适用于其他元素,例如<ul><header><footer>

所以用法将是这样的:

<div class="noindex">
   <p>This should not be indexed.</p>
</div>