2010-05-07 8 views
5

사이트에서 웹 페이지에 붙여 넣은 일부 JavaScript를 제공하여 해당 위치에 내용을 삽입하면 스크립트가 DOM에서 현재 위치를 어떻게 결정합니까? document.write를 사용하지 않고?<script> 태그 위치에 요소를 삽입하십시오.

감사합니다,

+1

어디에서 그런 작업을 수행했는지 보여주는 예가 있습니까? –

답변

5

스크립트가 포함될 때 페이지의 마지막 <script>이 현재 것임을 확신합니다. 나머지 페이지는 아직 파싱되지 않았습니다. 그래서 : 이것은 한 사실이 보유하고

<script type="text/javascript"> 
    var scripts= document.getElementsByTagName('script'); 
    var this_script= scripts[scripts.length-1]; 

    // Something that happens later... 
    // 
    setTimeout(function() { 
     var div= document.createElement('div'); 
     div.appendChild(document.createTextNode('Hello!')); 
     this_script.parentNode.insertBefore(div, this_script); 
    }, 5000); 
</script> 

스크립트 태그는 defer를 사용하거나 HTML5의 async하지 않는 한.

+0

그런 식으로 작동한다는 것을 깨닫지 못했지만, 완벽하게 이해했습니다! 감사합니다! –

0

같은 스크립트는 DOM에서의 위치에 대해 신경 왜 내가 볼 수없는,하지만 난 그것을 결정할 수 같아요. 검색을 시작하려면 document.scripts과 같은 것을 사용하십시오.

+0

Mozilla 참조 문서에 document.scripts가 표시되지 않습니다. https://developer.mozilla.org/en/DOM/document 저는 IE 전용이라고 생각합니까? 잘못 될 수도 있지만 Chrome을 실행 중이므로 확인하지 않아도됩니다. :) 그래도 고마워. –

+0

IE 확장으로 WebKit과 Opera에서도 사용할 수 있습니다. 'getElementsByTagName'가 이미하지 않은 것을 당신에게주지 않았기 때문에, 실제로는별로 사용되지 않습니다. – bobince

관련 문제