javascript
  • html
  • 2011-02-08 6 views 3 likes 
    3

    태그에 쓰는 스크립트를 동적으로 작성하고 평가하고 싶습니다. 이 코드가 작동하지 않는 이유는 무엇입니까?동적으로 작성하여 평가하기 <script>

    <html> 
    <head> 
    
    <script id="cojs"> 
    
    </script> 
    
    <script type="text/javascript"> 
    document.getElementById('cojs').innerHTML = 'alert("hey");'; 
    </script> 
    </head> 
    <body> 
    </body> 
    </html> 
    
    +0

    이유는 무엇입니까? 'eval'을 사용할 수 없습니까? –

    +1

    ... 어쨌든 왜 그렇게하고 싶습니까? 왜 그냥 경고 ("헤이")를 할 수 없습니까? (또는 다른 코드) 어디에 있나? 어딘지 모르게 다른 곳에 배치 (실행)해야하는 이유는 무엇입니까? 어떤 식 으로든 다른 물건이나 어떤 것보다 먼저 실행되도록하지는 않을 것입니다. –

    +0

    스크럼 : jval을 동적으로 실행하기 위해 eval() 또는 무엇이든 사용할 수 있습니다. 크레용 : 이것은 간단한 예입니다. 내 실제 코드에서 아약스 응답에 대한 응답으로 자바 스크립트를 실행해야합니다. – babonk

    답변

    1

    글쎄 스크립트 태그는 구문 분석시 평가됩니다. 위 섹션은 변경 한 후에 더 이상 구문 분석되지 않으므로 작동하지 않습니다.

    당신의 유스 케이스는이 eval 함수 시도 할 수있는 경우 : 당신이 스크립트는 문서에 추가 할 필요가 해석 할 경우

    <html> 
    <head> 
        <script type="text/javascript"> 
        eval('alert("hey");'); 
        </script> 
    </head> 
    <body> 
    </body> 
    </html> 
    
    0

    합니다. 일부 브라우저는 스크립트에 innerHTML을 사용하지 않지만 모두 스크립트의 텍스트 속성을 설정합니다.

    <!doctype html> 
    <html lang= "en"> 
    <head> 
    <meta charset= "utf-8"> 
    <title> title</title> 
    
    <script> 
        window.onload=function(){ 
         var head=document.getElementsByTagName('head')[0], 
         who= document.createElement('script'); 
         who.text= 'alert("hey");'; 
         head.appendChild(who); 
        } 
    </script> 
    
    </head> 
    <body> 
    </body> 
    </html> 
    
    관련 문제