2009-09-28 4 views
4

페이지의 HTML 소스 코드 (현재 페이지의 소스가 아님)가 들어있는 javascript 변수가 있습니다.이 변수에서 모든 링크를 추출해야합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?문자열에서 모든 링크를 추출합니다.

변수에 HTML 용 DOM을 만든 다음 그걸 걷는 것이 가능합니까?

+0

JS HTML 문서 파서의 일종을 사용하는 것이 가장 좋습니다. 또는 정규식을 사용할 수도 있지만 이것이 최선의 방법이라고 생각하지 않습니다. –

답변

6

,하지만 작동합니다 : 그것은 DOMParser을라고, 그것을 확인 (자바 스크립트 만)

var rawHTML = '<html><body><a href="foo">bar</a><a href="narf">zort</a></body></html>'; 

var doc = document.createElement("html"); 
doc.innerHTML = rawHTML; 
var links = doc.getElementsByTagName("a") 
var urls = []; 

for (var i=0; i<links.length; i++) { 
    urls.push(links[i].getAttribute("href")); 
} 
alert(urls) 
1

파이어 폭스를 실행하는 경우 YES 당신이 할 수있는! 이 권장되는 방법 인 경우 나도 몰라

DOMParser is mainly useful for applications and extensions based on Mozilla platform. While it's available to web pages, it's not part of any standard and level of support in other browsers is unknown. 
+0

"예 ~ 할 수 있어요!" 이게 뭐야? 밥 빌더? : P – brianreavis

+0

:) 예, 그것은 밥 빌더입니다 – xxxxxxx

+0

이 대답을 사랑 해요. 그것은 2009 여전히 [의해 Broswer 이름]에 최적화 된 웹 사이트'의 황금 시대였다 보인다 -이 HTML 문자열'변수 텍스트 = 'bar

dfgdfg
ghghhkhkh zort'로이 시험 할 때 [브라우저 버전]' –

3

이 esepcially 유용 당신이 필요한 경우 링크 바꾸기 ...

var linkReg = /(<[Aa]\s(.*)<\/[Aa]>)/g; 

var linksInText = text.match(linkReg); 
+0

는, '그것은 반환 전체 HTML 텍스트 문자열 및 A 링크와 일치하지 않음 – JasonDavis

관련 문제