Я хочу показать все автоматические поисковые запросы в текстовом поле. После поиска google я нашел ссылку " http://google.com/complete/search?output=toolbar&q=test ", которая возвращает данные xml, содержит десять поисковых предложений google. Мой код jQuery для отображения этих значений xml:
$(window).ready(function(){
$( "#textbox" ).keypress = showSuggest();
});
function showSuggest() {
$.ajax({
type: "GET",
url: "http://google.com/complete/search?output=toolbar&q=" + $("#textbox").val(),
dataType: "xml",
var data = [];
success: function(xml) {
$(xml).find('CompleteSuggestion').each(function(){
data.push($(this).find('suggestion')[0].attr('data'));
});
}
});
$( "#textbox" ).autocomplete({
source: data
});
}
jquery-1.9.1.js и jquery-ui-1.10.3 были импортированы, но этот код не работает. Извините за мой плохой английский. Благодарю.
ОБНОВИТЬ
Спасибо всем. я редактирую свой код и удаляю часть чтения xml и заменяю
url: "http://google.com/complete/search?output=toolbar&q=" + $("#textbox").val()
$("#textbox").autocomplete({
source: data
});
с этим:
$( "#textbox" ).autocomplete({
source: "http://suggestqueries.google.com/complete/search?client=firefox&q=" + $( "#textbox" ).val()
});
теперь при вводе текста отображается только изображение прогресса в левой части текстового поля и до сих пор не отображается предложение. пожалуйста помоги.
НОВОЕ ОБНОВЛЕНИЕ
Я пишу новый код с firefox DOMParser, но все еще не работаю.
$("#textbox").keypress(function() {
var data = [];
var parser = new DOMParser();
var xml = parser.parseFromString("http://google.com/complete/search?output=toolbar&q=" + $("#new-tag-post_tag").val(), "application/xml");
xml.domain = "google.com";
suggests = getElementsByTagName("CompleteSuggestion");
for (var i = 0; i < suggests.length; i++) {
data.push(suggests[i]);
}
$( "#textbox" ).autocomplete({
source: data
});
}
$(document).ready(function(){
$( "#textbox" ).keypress(showSuggest);
});
function showSuggest() {
// Declare the variable here, not inside the $.ajax code
var data = [];
$.ajax({
type: "GET",
url: "http://google.com/complete/search?output=toolbar&q=" + $("#textbox").val(),
dataType: "xml",
success: function (xml) {
$(xml).find('CompleteSuggestion').each(function () {
data.push($(this).find('suggestion')[0].attr('data'));
$("#textbox").autocomplete({
source: data
});
});
}
});
}
ваш синтаксис javascript неверен. Это может сработать:
$(document).ready(function() {
$("#textbox").on("keypress", showSuggest);
});
function showSuggest() {
var data = [];
$.ajax({
type: "GET",
url: "http://google.com/complete/search?output=toolbar&q=" + $("#textbox").val(),
dataType: "xml",
success: function(xml) {
console.log(xml);
$(xml).find('CompleteSuggestion').each(function(){
data.push($(this).find('suggestion')[0].attr('data'));
});
$( "#textbox" ).autocomplete({ source: data});
}
});
}
в любом случае я рекомендую вам изучить JavaScript до начала программирования.