元素名称gcse:searchbox-only不能表示为XML 1.0

fud*_*din 10 html xml validation w3c-validation

我在w3验证器中收到以下错误,

 Line 62, Column 140: Element name gcse:searchbox-only cannot be represented as XML 1.0.
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码添加的网站内的Google搜索栏,

<gcse:searchbox-only></gcse:searchbox-only>
Run Code Online (Sandbox Code Playgroud)

请帮忙避免此错误.谢谢

Jan*_*n M 19

我发现这个答案隐藏在谷歌文档中:

https://developers.google.com/custom-search/docs/element#html5

HTML5有效的div标签

只要您遵守以下准则,就可以使用HTML5有效的div标签:

  • class属性必须设置为gcse-XXX
  • 任何属性都必须以data-为前缀.

例如:

<div class="gcse-searchbox" data-resultsUrl="http://www.example.com" data-newWindow="true" data-queryParameterName="search" >
Run Code Online (Sandbox Code Playgroud)


小智 8

您总是可以使用<div class="gcse-search"></div>而不是<gcse:search></gcse:search>,然后错误将远离w3c验证器.


Alo*_*hci 4

Michael[tm] Smith,负责 W3C HTML 验证器的人在这里说

这不是错误,而是警告。它之所以被发出,是因为内容以 HTML 的形式提供,而不是使用 XML MIME 类型,而 HTML 解析器对命名空间一无所知——用 XML 术语来说,每个元素名称都是本地名称——等等HTML,该元素的字面名称是“g:plusone”。该名称无法用 XML 表示,因为 XML 不允许在本地名称中使用冒号。因此,警告的实质是说,如果您想以 XML 而不是 HTML 的形式提供此内容,则其中包含 XML 中不允许的元素名称。

他正在谈论元素,g:plusone但这是同一个问题。

但我有点不同意。冒号在XML 1.0中的元素本地名称中有效。仅在XML 1.0 + 命名空间中不允许使用它们,因此警告消息绝对可以改进。

更新:我之前提供了一个基于 document.write 的解决方法,但正如 Jan M 在评论中指出的那样,IE 对于如何处理标签名称中带有冒号的元素有自己的想法,因此它在那里不起作用。相反,我建议遵循简的回答。