1

我们有一个 JavaScript 搜索脚本,可以从 Bing API 中提取数据。但是,当没有找到用户查询的结果时,它只会显示一个空白页面。我们如何让脚本显示无结果消息,例如“Nothing found.”?

ajax({
    type:"GET",
    url:"http://api.bing.net/json.aspx?appId=APPID&query=QUERY&sources=web&adult=strict&web.count=10&cc=en&jsontype=callback&jsoncallback=?",
    dataType:"jsonp",
    success:function(a){
        $ID("results").innerHTML="<h2>Search</h2>";
        for(var c=0;c<a.SearchResponse.Web.Results.length;c++){
            var d=a.SearchResponse.Web.Results[c];
            $ID("results").innerHTML+="<a href=\""+d.Url+"\" id=\"result\"><div id=\"title\">"+d.Title+"</div><div id=\"url\">"+d.DisplayUrl+"</div>"+d.Description+"</a>"
        }
    }
})
4

2 回答 2

1
   function noResults() {
     $ID("results").innerHTML="<h2>Nothing to see here...</h2>";
   }

   ajax({
        type:"GET",
        url:"http://api.bing.net/json.aspx?appId=APPID&query=QUERY&sources=web&adult=strict&web.count=10&cc=en&jsontype=callback&jsoncallback=?",
        dataType:"jsonp",
        success:function(a){
            if (!a.SearchResponse.Web.Results ||
                !a.SearchResponse.Web.Results.length) {
              noResults();
            } else {
              // results processing here
            }
        },
        error : function (a) {
            noResults();
        }
   })

可能不是您想要的,但或多或​​少是您要求的。

于 2012-06-07T18:47:20.753 回答
0
ajax({
type:"GET",
url:"http://api.bing.net/json.aspx?appId=APPID&query=QUERY&sources=web&adult=strict&web.count=10&cc=en&jsontype=callback&jsoncallback=?",
dataType:"jsonp",
success:function(a){
    $ID("results").innerHTML="<h2>Search</h2>";
    if(a.SearchResponse.Web.Results.length > 0 ) {
       for(var c=0;c<a.SearchResponse.Web.Results.length;c++){
          var d=a.SearchResponse.Web.Results[c];
          $ID("results").innerHTML+="<a href=\""+d.Url+"\" id=\"result\"><div id=\"title\">"+d.Title+"</div><div id=\"url\">"+d.DisplayUrl+"</div>"+d.Description+"</a>"
       }
    } else {
        $ID("results").innerHTML = "Sorry no result found"; //you can customize this
    }
}

})

于 2012-06-07T18:47:10.660 回答