我在搜索表單上實現jQuery自動完成,並從Google Search Appliance Autocomple建議服務獲取建議,該服務返回json中的結果集。jQuery自動完成Json Ajax與Google Search Appliance跨瀏覽器問題
我想要做的是去GSA獲取建議,當用戶在搜索框中輸入內容時。
URL,以獲取json的建議如下:
http://gsaurl/suggest?q=<query>&max=10&site=default_site&client=default_frontend&access=p&format=rich
它傳回的JSON如下:
{ "query":"re", "results": [ {"name":"red", "type":"suggest"}, {"name":"read", "type":"suggest"}] }
jQuery的自動完成代碼如下:
$(#q).autocomplete(searchUrl, {
width: 320,
dataType: 'json',
highlight: false,
scroll: true,
scrollHeight: 300,
parse: function(data) {
var array = new Array();
for(var i=0;i<data.results.length;i++)
{
array[i] = { data: data.results[i], value: data.results[i].name, result: data.results[i].name };
}
return array;
},
formatItem: function(row) {
return row.name;
}
});
這適用於IE,但在Firefox中失敗,因爲解析函數返回的數據爲空。 任何想法,爲什麼會這樣?
解決方法
我創建了一個aspx頁面調用GSA建議服務,並從建議的服務回報JSON。使用這個頁面作爲代理並將其設置爲jQuery自動完成中的url可在IE和FireFox中使用。