8

我试图弄清楚如何使用 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

有什么线索吗?

4

3 回答 3

6

osdd.xml 的加载不会显示在开发人员工具 > 网络选项卡上。

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

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

于 2012-01-31T23:50:19.847 回答
3

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

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

干杯!

于 2015-05-14T14:38:54.470 回答
0

在此处添加一些最新信息。我找不到任何正式的证据,但似乎Android 上的 Chrome 在2018 年 9 月的某个地方改变了何时在设置中显示新搜索引擎的逻辑。在此之前,它曾经在用户简单导航时工作到网站。进行此更改后,搜索引擎并未立即显示在设置中。如果我访问具有开放式搜索元标记的网站,我就能让它工作。然后去另一个站点,然后再回来。它只出现在第二次。为了让用户更容易,我添加了一个隐藏的 iframe,它重定向到另一个站点(我控制),然后在该站点上,我在 2 秒后添加了一个重定向回原始站点的重定向。它似乎适用于我测试的所有设备(一些三星设备)。

我在这里看到评论说只有当用户位于根节点(mysite.com/ 但不是 mysite.com/foo)时才会查找 opensearch 文档。我的网站正在关注此评论,并且我没有尝试其他方式,因此如果这很重要,我无法批准或否认。

于 2018-10-02T11:37:47.093 回答