2013-07-11 2 views
0

div에 예제 코드가 포함되어 있습니다. 버튼을 누른 후이 코드를 실행하고 싶습니다. 여기에 내가 무엇을 시도했다입니다 :자바 스크립트 함수 내에서 일부 코드 실행

<button onclick="javascript:playcode()"> </button> 

JS가

function playcode() { 
    var execcode= ""; 
    for (i=1; i<=countCodeLine(); i++) 
     execcode += document.getElementById("line"+i).innerText; 

    var div= document.getElementById ("mydiv"); 
    var scr= document.createElement ('script', ""); 
    div.innerHTML= "play() {"+execcode+"}"; 
    div.appendChild(scr); 
    play(); 
} 

하지만이 작동하지 않습니다

HTML. 내가 어떻게 할 수 있니?

UPDATE : 콘솔에서 여기에 오류 : 당신은 참으로 execcode에 바로 HTML을 얻는 경우

(line 9: pre.appendChild(scr)) Uncaught SyntaxError: Unexpected token { 
(line 10: play()) Uncaught TypeError: object is not a function 
+3

콘솔에 오류가 있습니까? –

+2

무엇이 작동하지 않습니까? 오류가 있습니까? ('break' 나 그런 것을 사용하지 않는다면, 점프 라벨'javascript :'btw는 필요 없습니다.) – Thilo

+0

onclick 속성이 변경되었거나 javascript가로드되지 않은 경우를 제외하고는 작동하지 않는 이유가 없습니다. – edi9999

답변

1

, 당신은

eval(execcode); 

을 사용할 수 있습니다 당신은 단순한를 수행하여이 문제를 확인할 수 있습니다 console.log(execcode) 또는 alert(execcode)을 입력하여 제대로로드되었는지 확인하십시오.

그러나 나는 이것이 거의 확실하게 아주 아주 좋은 아이디어라고 보장 할 수 있습니다.. 누군가가 DOM을 편집하고 원하는 악성 자바 스크립트를 삽입하는 것은 사소한 일입니다.

+0

완벽하게 작동합니다. 감사합니다. – Jannuzzo

+0

당신은 환영합니다.하지만 프로덕션 환경에서는이 작업을 수행하지 않아야합니다. –

관련 문제