2013-10-18 2 views
0

이 질문을 잘못 작성하면 사전에 사과드립니다. 나는 웹 코딩을 처음 접하게되었다.자바 스크립트를 사용하여 동적으로 렌더링 된 요소를 검색 하시겠습니까?

제 목표는 JavaScript를 사용하여 웹 페이지를 스캔하고 특정 문자열이 있는지 여부를 확인하는 것입니다. 여기에서의 어려움은 페이지가 동적으로 렌더링된다는 것인데, 문제의 문자열은 이 아니며이 소스 코드에 나타납니다.

문자열이 페이지에 렌더링되면 DOM에 표시 되나요? DOM을 스캔하면 거기에서 찾을 수 있습니까? 그렇다면 고려해야 할 특별한 고려 사항이 있습니까?

기본적으로 소스 코드가 아니라 페이지에 렌더링 된 텍스트를 스캔하는 간단한 방법을 찾고 있습니다. 이것은 브라우저의 "find on page"기능이 문제의 동적으로 렌더링 된 페이지에서 작동하기 때문에 가능해야합니다. 브라우저 API 자체를 통해 페이지의 렌더링 된 요소에 액세스 할 수있는 방법이 있습니까? (I 크롬을 사용하고 있습니다.)

+0

예, DOM을 통해 가능합니다. –

답변

1

이 시도 :

var stringToSearchFor = 'foobar'; 
var searchThisString = document.body.innerText || document.body.textContent; 
var found = (searchThisString.indexOf(stringToSearchFor) >= 0); 

이 페이지에서 텍스트를 추출, 모든 마크 업을 무시하고 결과 문자열의 간단한 스캔을 수행합니다.

일부 FireFox 버전에는 인라인 스크립트 태그의 내용이 포함됩니다.

+0

답장을 보내 주셔서 감사합니다. 문자열이 소스에 없더라도이 작업이 가능합니까? 이 방법으로 소스에서 마크 업을 제거 할 수는 있지만 여전히 내 문자열은 나머지 텍스트에 포함되지 않는다는 것을 알고 있습니다. –

+0

예, DOM에서 _current_ 텍스트를 가져와야합니다. 여기에는 페이지가로드 된 이후의 모든 수정 내용이 포함됩니다. –

+0

아하네. 알았어. 따라서이 함수는 페이지 코드의 결과 인 HTML에서 마크 업을 제거합니다. 말이된다. 고마워요! –

관련 문제