2009-10-02 5 views
0

$ .get을 통해 얻을 수있는 문자열을 어떻게 쿼리 할 수 ​​있습니까? 예를 들어, 나는 단지 양식 html을 원할 것입니다.

$.get("www.google.com", function(data){ 
var body = $("body", data).html(); //This doesnt work 
}); 

심지어 가능합니까? 감사합니다.

+2

그걸 얻기 위해 http : //를 추가하려고 할 수도 있습니다 ... – peirix

답변

2

아니요, jQuery는 XmlHttpRequest를 통해로드 된 페이지의 DOM에 직접 액세스 할 수 없습니다. 이렇게하려면 the one that John Resig wrote과 같은 JavaScript로 작성된 HTML 파서를 사용해야합니다. 그것은 당신이 아마 예상 했었던 것보다 훨씬 더 어려운 과제입니다.

2

HTML 파서가 필요하기 때문에 작동하지 않는 것이 하나 있습니다. 다른 하나는 www.google.com에서이 작업을 수행하지 않는 한 same origin policy 때문에 작동하지 않을 것입니다. 이를 피할 수있는 방법이 있으며, 가장 많이 사용되는 것은 JSONP이지만 jQuery에서 정의한 jsonp 메서드를 사용하지 않고 수동으로 수행 할 수도 있습니다.

편집 : 당신이 당신의 자바 스크립트에서 다른 도메인의 콘텐츠를지고의 문제를 통과하지 않으려면
것은, 다른 방법은 서버가 될 사용하는 것, PHP, .NET 요법에 원격 페이지를 가져온 다음 AJAX를 사용하여 JavaScript를 반환하십시오. 이것은 하나가 아닌 2 개의 요청을 수행 할 때 js에서 직접 수행하는 것보다 약간 더 시간이 많이 소요됩니다. 그러나 서버 도구에 따라 js에서 HTML을 파싱하는 것이 더 쉽습니다. 따라서 페이지에서 원하는 내용을 쉽게 얻을 수 있습니다.

+0

원격 파일 (일부 쿼리 문자열이있는 .aspx)을로드하고이 파일의 본문 html이 필요합니다. 다른 방법으로 이것을 할 수 있습니까? – k0ni