我有一个基于Bing API的jQuery搜索脚本。当用户搜索并且他们的查询结果时,他们显示没有问题。但是,当他们的搜索没有结果时,页面就是空白。
如何在“未找到结果”中添加消息。什么时候没有结果可以防止出现空白页?
我目前的代码是:
$(document).ready(function(){
function search(){
$.ajax({
type:"GET",
url:"http://api.bing.net/json.aspx?AppId=AppIdHere&Query=SearchTermsHere&Sources=Web&Adult=Strict&Web.Count=10&JsonType=callback&JsonCallback=?",
dataType:"jsonp",
success:function(query){
$("#results").html(results(query));
}
});
}
function results(response){
var output=[];
$.each(response.SearchResponse.Web.Results,function(i,result){
output.push('<a href="'+result.Url+'" class="result"><div class="title">'+result.Title+'</div><div class="url">'+result.DisplayUrl+'</div><div class="desc">'+result.Description+'</div></a>');
});
return output.join('');
}
search();
});
答案 0 :(得分:0)
success:function(query){
if(query != null)
$("#results").html(results(query));
else
$("#results").html('<p>No results found</p>');
}
答案 1 :(得分:0)
将结果函数的返回行更改为:
return (output.length == 0 ? 'No results found.' : output.join(''));
=== UPDATE ===
如果您有javascript错误,请将结果函数更改为:
function results(response){
if (typeof response.SearchResponse.Web.Results == 'undefined') {
return 'No results found.';
}
var output=[];
$.each(response.SearchResponse.Web.Results,function(i,result){
output.push('<a href="'+result.Url+'" class="result"><div class="title">'+result.Title+'</div><div class="url">'+result.DisplayUrl+'</div><div class="desc">'+result.Description+'</div></a>');
});
return output.join('');
}
或者您必须添加错误处理程序:
$.ajax({
...,
error:function(){
$("#results").html('No results found.');
}
});