2013-10-07 3 views
0

모든 Google 검색 자동 완성을 텍스트 상자에 표시하고 싶습니다. Google을 검색 한 후 "http://google.com/complete/search?output=toolbar&q=test"링크가 반환됩니다. xml 데이터에는 10 개의 Google 검색 suggets이 포함되어 있습니다. 이 XML 값을 보여주는 내 jQuery 코드는 다음과 같습니다텍스트 상자에 Google 자동 완성?

$(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가 가져온하지만이 코드가 작동하지 않습니다. 나쁜 영어로 죄송합니다. 덕분에 .

UPDATE 모든 사람에게

감사합니다. 난 내 코드를 편집 및 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() 
}); 

을 이제 텍스트 상자의 진행 이미지 왼쪽을 보여 여전히 suggets 표시되지 텍스트를 입력하십시오. 도와주세요.

새로운 업데이트는

나는 파이어 폭스 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 
    }); 
} 
+2

이것은 ** [동일 출처 정책]으로 인해 작동하지 않습니다 (http://en.wikipedia.org/wiki/Same-origin_policy) ** – Archer

+0

나는 코드가 저를 도와주세요 업데이트합니다. – Hossein

답변

0

자바 스크립트 구문이 잘못되었습니다. 작동 가능 :

$(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를 배우는 것이 좋습니다.

+0

나는 창 프로그래머이고 나는 JavaScript를 배우기 위해 새로운 사람이다. – Hossein

+0

console.log (xml)이란 무엇입니까? 이 쇼 xml C#에서 Console.Write 같은 포함합니까? – Hossein

+0

WHOLE 텍스트 상자 값을 쿼리에 넣으면 안됩니다. 공백이나 문자가 아닌 문자로 시작하는 마지막 문자 만 입력하면됩니다. – vsync

1
$(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 
       }); 
      }); 


     } 
    }); 
} 
관련 문제