【问题标题】:Making usage of Google Chrome's OmniBox [TAB] Feature for/on personal website?在个人网站上使用 Google Chrome 的 OmniBox [TAB] 功能?
【发布时间】:2010-11-21 23:16:08
【问题描述】:

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

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

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

然而,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" />

【问题讨论】:

标签: google-chrome opensearch searching-xml


【解决方案1】:

让 OSD (OpenSearchDescription) 在 Google Chrome 或 IE7 / IE8 下工作并不像上面提到的那么困难,或者这些浏览器不支持 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>
  • 从元素中删除 method="POST"
  • /query.php 替换为实际的页面调用:/query.php?sString={searchTerms}强>
  • 删除现在不必要的“&lt;Param name="sString" value="{searchTerms}"/&gt;

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

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

再次感谢 adrianbanks 为我提供了导致解决方案的 xml 文件!

【讨论】:

  • -1 您以“在 Google Chrome 或 IE7 / IE8 下获取 OpenSearchDescription 工作没有提到的那么困难,或者这些浏览器不支持 POST 请求”开始您的回答,然后您继续描述以一种非常冗长的方式,这些浏览器确实不支持通过 POST 请求进行搜索”。
【解决方案2】:

我已将您的内容与我自己网站上的 OpenSearchDescription 进行了比较,但我看不出为什么您的内容不起作用。唯一真正的区别是您使用 POST 进行搜索,而我使用的是 GET。根据this页面,IE7不支持POST请求,所以可能其他浏览器也不支持POST。

我网站上的那个绝对适用于 IE8、Chrome 3.0 和 FF 2.0+。随意比较它们,看看你是否能发现不同之处:opensearch.XML

【讨论】:

  • 非常感谢您的大力帮助并提供您自己的 osd 文件!它导致了解决方案。我将写一个解决问题的答案,还允许在 IE 和 Chrome 中使用 POST :-)!
猜你喜欢
  • 2012-07-25
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 2017-03-13
  • 2013-07-29
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
相关资源
最近更新 更多