거대한 html 문자열에서 변수를 추출하는 방법을 알아 내려고합니다. 다음은 간단한 예제입니다.html blob의 스크립트 태그에서 변수를 추출하는 방법
업데이트 다음은 일반적인 접근 방법을 사용하는 스크린 샷입니다. test['foo']
과 같은 간단한 작업은 작동하지 않습니다. 이 문자열은 서버에서 반환 된 문자열이며 실제 문서 나 창에로드되지 않습니다. 그것은 메모리에 보관되는 html 객체입니다.
https://jsfiddle.net/hvpvg3o4/
HTML
<div id="test"> <!-- div is just for jsfiddle -->
<script>
var test = { // <-- I WANT YOU!
foo: 'bar'
};
var somethingIDontWant = 1;
var iDontCareAboutYouEither = {
blag: 1 + 1
};
</script>
</div>
자바 스크립트
var testTag = document.getElementById('test');
var scriptTag = testTag.getElementsByTagName('script');
// var testObj = ?;
하지
가 난 그냥 스크립트 태그에서 텍스트를 얻을 중 평가 실행하거나 일부 JSON.parse하지만, 다른 물건 스크립트 태그 안에 존재이기 때문에, 내가 할 수있는 수 있다고 기대했다
가 이 일부 방법은 스크립트 태그 또는 일부 멋진 정규식에서 변수를 추출 할 수 있습니까? 요구되는 객체가 글로벌 범위에 선언 된 경우
왜 그런 식으로하고 싶은지 조금 설명 할 수 있습니까? 귀하의 자바 스크립트 또는 html 문자열은 어디서 오는가? –
eval (scriptTag.innerHTML); console.log (test.foo); – Deathmras
많은 HTML이 포함 된 응답에서 URL을 추출하려고합니다. 지금 당장은 서버에 접속하여 그 프로세스를 수정하는 옵션이 없으므로 기본적으로 스크립트 태그와 인라인 자바 스크립트가 붙어 있습니다. 그것은 붕괴 수정이지만, 그것을 작동하게하려고 – mwilson