0

我的网站有一个要求,用户可以在文本框中输入一些“文本”,我必须在下拉列表中显示一些搜索建议。我已经注册了一个必应搜索帐户并获得了一个帐户密钥。但我看不到任何示例代码如何使用 Jquery 实现此功能。

我的网站是用 Asp.Net MVC 编写的,如果有人能指出示例代码,那就太好了。

谢谢 !

4

2 回答 2

1
http://api.bing.net/xml.aspx?Appid=<AppID>&sources=spell&query=cofee

来源: http: //www.bing.com/developers/s/APIBasics.html

您需要做的就是通过 XHR (POST) 发布 REST API 请求并以文本形式获取数据。您可以使用 JSON.parse() 解析响应。

于 2013-03-04T01:02:25.953 回答
0

早在 6 月份,我就为自己的需要编写了一个简单的库:jquery-bingsearch(GitHub 源代码和网页)。我意识到您可能已经解决了您的问题,但我想将其留在这里以备将来使用 Google 果汁。

我在我的个人网页上使用它。

用法

应用密钥

按照此页面上的步骤 1 获取应用程序密钥。

HTML

<script type="text/javascript" src="js/jquery.bingsearch-min.js"></script>

Javascript

注意:必须至少传入 、 或 中的一个,beforeSearchResults否则 插件将不执行任何操作(因为没有任何内容可以返回结果。这是对下面列出的必填字段的补充。afterSearchResultssearchResultInterator

$.bingSearch({
    // Required: query text
    query: 'query text here',
    // Required (unless you use urlBase) by Bing Search API
    appKey: 'Put your Windows Azure Marketplace Bing Search API Primary Account Key here'
    // Optional (defaults to the Bing Search API Web Results Query).
    // Additional information: This feature allows you to proxy through a server-side
    //                         script in order to hide your API key, which is exposed to the
    //                         world if you set it client-side in appKey. An example PHP
    //                         script is included (searchproxy.php).
    urlBase: 'searchproxy.php',
    // Optional (defaults to 1): Page Number
    pageNumber: parseInt($('#pageNumber').val()),
    // Optional (defaults to 10): Page Size
    pageSize: 10,
    // Optional (defaults to null): Limit to site. Shortcut to adding "site:example.org " to query
    limitToSite: 'example.org',
    // Optional (defaults to false): Print console logging information about search results
    debug: false,
    // Optional: Function is called after search results are retrieved, but before the interator is called
    beforeSearchResults: function(data) {
        // Use data.hasMore, data.resultBatchCount
    },
    // Optional: Function is called once per result in the current batch
    searchResultIterator: function(data) {
        // Use data.ID, data.Title, data.Description, data.Url, data.DisplayUrl, data.Metadata.Type (check for undefined)
    },
    // Optional: Function is called after search results are retrieved and after all instances of the interator are called
    afterSearchResults: function(data) {
        // Use data.hasMore, data.resultBatchCount
    },
    // Optional: Called when there is an error retrieving results
    fail: function(data) {
        // data contains an error message
    }
});
于 2013-11-07T21:14:35.100 回答