我正在尝试弄清楚如何使用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
。
任何线索?
答案 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。我的网站正在关注此评论,但我没有尝试其他方法,因此如果这很重要,我将无法批准或拒绝。