Jquery 如何将Wikipedia opensearch API与Typeahead.js一起使用?
有人能给我一个代码示例,说明我如何将维基百科开放式搜索API与TwitterJquery 如何将Wikipedia opensearch API与Typeahead.js一起使用?,jquery,typeahead.js,bootstrap-typeahead,wikipedia-api,twitter-typeahead,Jquery,Typeahead.js,Bootstrap Typeahead,Wikipedia Api,Twitter Typeahead,有人能给我一个代码示例,说明我如何将维基百科开放式搜索API与TwitterTypeahead.js结合使用吗?我知道我应该从远程选项调用它,但我不知道如何检索值 例如: 这是json响应,来自 这是一个带有remote的typeahead.js,显然不起作用 var wikiSuggestions = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), queryTokenize
Typeahead.js
结合使用吗?我知道我应该从远程选项调用它,但我不知道如何检索值
例如:
这是json响应,来自
这是一个带有remote的typeahead.js
,显然不起作用
var wikiSuggestions = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'https://en.wikipedia.org/w/api.php?format=json&action=opensearch&lang=en&search=%QUERY',
wildcard: '%QUERY'
}
});
$('#remote .typeahead').typeahead(null, {
name: 'wiki',
display: 'value',
source: wikiSuggestions
});
我怎样才能让它工作?我不知道如何检索建议页面的所有标题,也不知道如何检索包含文章标题的数组。您可以使用javascript对其进行转换
function openSearchConverter(osResults){
console.log(osResults);
var results = [];
for(var i = 0; i < osResults[1].length;i++){
results.push({
name: osResults[1][i],
desc: osResults[2][i],
url: osResults[3][i],
});
}
return results;
}
您可以使用以下内容中的displayKey:'name'
引用对象:
var wikiSuggestions = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'https://en.wikipedia.org/w/api.php?format=json&action=opensearch&lang=en&search=%QUERY',
wildcard: '%QUERY',
filter: openSearchConverter
}
});
$('#remote .typeahead').typeahead(null, {
name: 'wiki',
displayKey: 'name',
source: wikiSuggestions
});
您可以使用javascript对其进行转换
function openSearchConverter(osResults){
console.log(osResults);
var results = [];
for(var i = 0; i < osResults[1].length;i++){
results.push({
name: osResults[1][i],
desc: osResults[2][i],
url: osResults[3][i],
});
}
return results;
}
您可以使用以下内容中的displayKey:'name'
引用对象:
var wikiSuggestions = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'https://en.wikipedia.org/w/api.php?format=json&action=opensearch&lang=en&search=%QUERY',
wildcard: '%QUERY',
filter: openSearchConverter
}
});
$('#remote .typeahead').typeahead(null, {
name: 'wiki',
displayKey: 'name',
source: wikiSuggestions
});
数据是什么样子的?您知道如何使用ajax调用远程api吗?@whipdancer我不知道如何告诉脚本检索标题数组中的所有值。我知道这很简单,但这是我第一次使用typeahead.js,网上的例子也不多。在
jQueryUI autocomplete
上,我没有问题。不要使用typeahead.js,它几乎有300个未解决的问题,并且不再维护。数据是什么样子的?您知道如何使用ajax调用远程api吗?@whipdancer我不知道如何告诉脚本检索标题数组中的所有值。我知道这很简单,但这是我第一次使用typeahead.js,网上的例子也不多。在jQueryUI autocomplete
上,我没有问题。不要使用typeahead.js,它几乎有300个未解决的问题,不再维护。