OpenSearch描述文档发现和Chrome

时间:2011-12-27 23:38:13

标签: google-chrome opensearch

我正在尝试弄清楚如何使用OpenSearch宣传我的Web应用程序的搜索终端(请参阅http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document),但即便是我最简单的示例也无效。我有index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
    <head profile="http://a9.com/-/spec/opensearch/1.1/">
        <link title="Search" rel="search" type="application/opensearchdescription+xml" href="osdd.xml"/>
    </head>
    <body>
        hello
    </body>
</html>

osdd.xml包含:

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
    <ShortName>test</ShortName>
    <Description>test</Description>
    <Url type="text/html" template="http://example.com?q={searchTerms}"/>
</OpenSearchDescription>

但似乎没有任何效果。 Chrome的“标签搜索”行为未显示,并且使用开发者工具Chrome似乎根本没有加载osdd.xml

任何线索?

3 个答案:

答案 0 :(得分:6)

osdd.xml的加载未显示在Developer Tools&gt;网络标签。

http://code.google.com/p/chromium/issues/detail?id=58801#c3(评论3)提到您需要至少搜索一次才能添加搜索引擎。

我还发现您需要从“设置”中删除现有搜索引擎&gt;管理搜索引擎并重新启动浏览器以查看对osdd文件的更改效果。

答案 1 :(得分:2)

很抱歉挖掘这个帖子,但我遇到了类似的问题,并设法解决了这个问题,所以如果有人发现的话,我会把我的发现留在这里。

就我而言,XML文件不在UTF-8上,因此Chrome无法正确加载。请确保您的文件是UTF-8。

干杯!

答案 2 :(得分:0)

在此处添加一些最新信息。我找不到任何正式的证明,但是 Android上的Chrome 似乎改变了何时在2018年9月某个时候在设置中显示新搜索引擎的逻辑。在此之前,它使用了当用户简单地导航到该站点时可以正常工作。更改之后,搜索引擎没有立即显示在设置中。如果我转到具有打开的搜索元标记的网站,则可以使其工作。然后转到另一个站点,然后再回来。它仅在第二次出现。为了使用户更方便,我添加了一个隐藏的iframe,该iframe重定向到另一个网站(由我控制),并在2秒钟后在该网站上添加了重定向回原始网站的功能。它似乎可以在我测试过的所有设备(少数三星设备)上正常工作。

我看到了评论here,说只有当用户位于根节点(mysite.com/而不是mysite.com/foo)时,才查找opensearch doc。我的网站正在关注此评论,但我没有尝试其他方法,因此如果这很重要,我将无法批准或拒绝。