我认为标题解释了一切,但无论如何我都会更深入地探讨我的问题:

如何在我的网站上使用 Chrome 的多功能框 [TAB] 功能?

由于许多用户要求我在网站上实现该功能,我对 OpenSearchDescription 进行了研究,并且在 FireFox 和 IE7/IE8 Searchbar 上的实现非常成功。

然而,该实现对于 Chrome Omnibox [TAB] 功能来说并不太有效。

你能帮我吗?

我的 OSD.xml 代码:

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>MySite</ShortName>
<Description>My Site</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">http://MySite.com/favicon.ico</Image>
<Url type="application/x-suggestions+json" method="GET"
     template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}" />
<Url type="text/html" method="POST" template="http://MySite.com/query.php">
  <Param name="sString" value="{searchTerms}"/>
</Url>
<Url type="application/x-suggestions+json" template="suggestionURL"/>
<moz:SearchForm>http://www.MySite.com</moz:SearchForm>
</OpenSearchDescription>

这是我页面上 osd 文件的链接:

<link rel="search" type="application/opensearchdescription+xml" title="MySite" href="/opensearch.xml" />
有帮助吗?

解决方案 2

在 Google Chrome 或 IE7 / IE8 下获取 OSD (OpenSearchDescription) 工作并不像前面提到的那么困难,或者这些浏览器不支持 POST 请求。

经过一些调整,我找到了解决整个问题的方法。

我的初始代码:

<Url type="text/html" method="POST" template="http://MySite.com/query.php">
  <Param name="sString" value="{searchTerms}"/>
</Url>

此代码直接指向查询页面,并在我的 POST 请求上传递 sString 属性的值。

这在 FireFox 上运行得很好,但在 IE7/IE8 或 Google Chrome 上运行得不太好(我还没有用 Opera 或 Safari 进行测试..)。


将代码更改为以下部分:

<Url type="text/html" template="http://MySite.com/query.php?sString={searchTerms}"></Url>
  • 去除 方法=“发布” 从元素
  • 更换 /查询.php 与实际的页面调用: /query.php?sString={searchTerms}
  • 删除现在不必要的“<Param name="sString" value="{searchTerms}"/>"

解决了我与这些浏览器不兼容的问题。

所有调用都直接前往查询页面,即使最初是 POST 请求,现在也可以在 IE7/IE8 和 Google Chrome 上运行。

再次感谢 adrianbanks 为我提供了您的 xml 文件,从而找到了解决方案!

其他提示

我比你对自己的网站上的OpenSearchDescription什么,我不明白为什么你不工作。唯一的区别是,你正在使用POST进行搜索,而我使用GET。根据页面,IE7不支持POST请求,所以它可能是其他浏览器也做不支持POST。

我网站上的一个肯定工程在IE8,Chrome浏览器3.0和FF 2.0。随时与他们自己比较,看你是否能发现一个差异: opensearch.XML

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top