2013-10-11 2 views
-1
내 서버에 프록시를 사용하여 외부 리소스를 다운로드하고 있습니다

에 의해 다운로드 페이지 구문 분석 : 기본적으로프록시

function retrieveOG(resource_url) { 
    $.ajax({ 
     url: "/interne/asynch/fetchfeeds/FetchOG.aspx?resource=" + encodeURIComponent(resource_url), 
     success: function (page) { 
      var mypage = $page; 
      console.log($page("meta[name='og:title']")); 
     }, 
     error: function() { 
      console.log("error"); 
     } 
    }); 
} 

를,이 페이지를 다운로드하고 클라이언트로 돌아가 내 서버에 URL을 보내 전체 페이지. 이 모든 것은 페이지의 메타 태그를 잡아야하기 때문에 가능합니다.

는하지만 ReferenceError: $page is not defined을 말한다. 내가 어디서 잘못한거야?

+0

는'page' 있어야하지 않나요? – undefined

+0

나무가 모두 내려다 보이는 나무? :) –

+0

죄송합니다, 잘못된 복사 & 붙여 넣기! 하지만 여전히 "DOM ELEMENT"로 액세스 할 수 없습니다. – markzzz

답변

2

예쁜 명백한 정말 $page가 정의되어 있지 않습니다. 대신 page을 정의했습니다.

내가 이런 식으로 일을 제안 : page는 HTML 문자열이라는 가정을하고있다

success: function (page) { 
    var $mypage = $(page);//convert your HTML string into a JQuery object 
    console.log($mypage.filter("meta[name='og:title']").attr("content")); 
} 

. 그런 다음 해당 html 문자열을 $mypage이라는 JQuery 객체로 변환합니다. 이 JQuery 객체를 질의 할 수있다.

부모 래퍼 요소가 없기 때문에 find 대신 filter을 사용해야합니다.

Here is a working example


대신 find를 사용하려면 ,이 같은 부모 태그에서 페이지를 포장 할 수 있습니다

var $mypage = $("<html/>").append(page); 
console.log($mypage.find("meta[name='og:title']").attr("content")); 
+0

예, 할 일이 있습니다. 하지만, 지금은'TypeError : $ mypage가 함수가 아닙니다'라고 말합니다. – markzzz

+0

@markzzz : 죄송합니다. – musefan

+0

@markzzz :'.html()'이 원하는 것인지 확실하지 않습니다. 얼마나 많은 메타 태그를 원하십니까? 당신이 원하는 것을 기록 할 수 있습니까? – musefan

관련 문제