2008-12-30 4 views
4

현재 자바 스크립트가 실행되고있는 스크립트 태그의 위치를 ​​알아 내려고하고 있습니다. 실제로 진행되고있는 것은 내부에서 src'd, 동적으로 삽입 된 javascript 파일의 위치를 ​​확인할 필요가 있다는 것입니다. DOM. 이들은 동적으로 생성 된 태그입니다. 코드는 :내부에서 <script> 태그의 위치를 ​​어떻게 확인할 수 있습니까?

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>where am i?</title> 
    <script type="text/javascript" charset="utf-8"> 
    function byId(id) { 
     return document.getElementById(id); 
    } 

    function create_script(el, code) { 
     var script = document.createElement("script"); 
     script.type = "text/javascript"; 
     script.text = code; 
     el.appendChild(script); 
    } 
    </script> 
</head> 
<body> 
    <div id="find_me_please"></div> 
    <script> 
    create_script(byId("find_me_please"), "alert('where is this code located?');"); 
    </script> 
</body> 
</html> 
+0

당신이 알아낼 않았다 작동 페이지로드에서이 작업을 실행하는 경우? 나는 같은 문제로 어려움을 겪고있다 ... – ekkis

답변

5

당신은 스크립트에게 ID 태그, like this dude does ...

+0

와우, 대단한 물건! 유일한 문제는 내가 코드 내부에서 ID를 알 수 없다는 것입니다 ... (일반적으로 src'd입니다 ...) src/js 스크립트 안에 코드가 있지만 그 지식이 없습니다. .. 불행하게도. –

3

당신은 더미 DOM 객체를 생성하고 밖으로 탈출 인 parentNode를 사용하는 document.write를 사용할 수를 줄 수 있습니다. 예를 들어이는 그것이 <script src="where_am_i.js"></script> 내부 때 당신이 실제로 <script> 태그 자체의 제어가없는 가정

<script> 
(function(r) { 
    document.write('<span id="'+r+'"></span>'); 
    window.setTimeout(function() { 
    var here_i_am = document.getElementById(r).parentNode; 
    ... continue processing here ... 
    }); 
})('id_' + (Math.random()+'').replace('.','_')); 
</script> 

- 당신이을 경우 <script> 태그의 제어를 간단하게에 ID를 넣어 에서로, :

<script id="here_i_am">...</script> 
+1

document.write를 수행 할 수 없습니다. 사실 묻는 이유 중 일부입니다. –

+0

왜 document.write를 수행 할 수 없습니까? – geocar

+0

dom이 완료된 후 내 js가 삽입됩니다. –

0

당신은이

<script> 
    var allScripts = document.getElementsByTagName('script'); 
    var thisScript = allScripts[allScripts.length]; 
    alert(thisScript); 
</script> 
+1

allScript.length-1, 물론입니다. – bobince

+0

그래,하지만 불행히도 나는 그것을 실행하지 않을거야 ... 내가 뭘하려고하는지 더 나은 설명과 함께 올라오고 :) 고마워, 많은 다른 상황에 유용합니다! –

관련 문제