2014-07-11 2 views
0

innerHTML을 사용하려고했지만 null을 반환합니다. 다음은 내 코드입니다 : <script> 요소의 내용 얻기

var sumScripts = gBrowser.contentDocument.getElementsByTagName("script"); 
    for (i = 0; i < sumScripts.length; i++) { 
    var content = sumScripts[i].innerHTML; 
    alert(content); 

그래서 내가 웹 페이지의 모든 스크립트를 얻고을 인쇄하려고하지만 널 때마다 인쇄합니다. 누가 잘못되었는지 알아? 이것은 XUL JavaScript입니다.

EDIT : Silly me. iterator typo (0에서 i로 변경)를 고쳤습니다. 고마워요. 이제 작동합니다.

+1

null 또는' ""'(빈 문자열). – Mritunjay

+1

'textContent' 시도 –

+3

반복자를 사용하고 있지 않습니다. 확실히 당신이'var content = sumScripts [i] .innerHTML;'하고 싶을 것입니다. 첫 번째 스크립트 태그가 비어 있으면 설명이됩니다. –

답변

1

FF addon에서 사용 가능한 범위는 귀하가 사용할 수있는 톤입니다.

Document.scripts에 액세스 할 수 있습니다.

https://developer.mozilla.org/en-US/docs/Web/API/Document

을하지만이 비 priveagled로도 주문 가능합니다 MDN에 여기에 대해 읽어보십시오. 그냥 window.document.scripts하고 반복하십시오.

var scripts = gBrowser.contentWindow.document.scripts; 
for (var i=0; i<scripts.length; i++) { 
    console.log(i, scripts[i].src, scripts[i].innerHTML) 
} 

염두에 일부 스크립트 요소 src=blah는 그래서 그들은 늘 innerHTML을가 설정 한 유지. 당신은 라이브 가져 오기 (xmlhttprequest, 등) 또는 캐시 된 값 중 하나를 가져야합니다.

+0

전에 document.scripts를 변수에 저장하려고했지만 작동하지 않습니다. 왜 몰라. info btw, 1 점 더 주셔서 감사합니다. 전 LOL을 upvote 할 수 있습니다. p @Nititartart –

+0

그 사실을 공유해 주셔서 감사합니다. var에 저장할 수 없다는 것은 이상합니다. 그거 확실하니? 최후의 수단으로 var에 저장해야합니까? – Noitidart

+0

스크래치 패드에서 시도했지만 브라우저 환경이 아닌 콘텐츠 환경에 저장할 수 있습니다. 브라우저 환경에서 gBrowser를 사용해야한다는 것을 깨달았습니다. 아니, 필요 없어. @noitidart –