2013-07-11 24 views
0

我有一个带有一些示例代码的div。我想在按下按钮后执行此代码。以下是我已经试过:在javascript函数里面执行一些代码

HTML

<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(); 
} 

,但它不工作。我怎样才能做到这一点?

更新:这里从控制台中的错误:

(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

如果你确实获得正确的HTML到execcode,您可以使用

eval(execcode); 

你可以只是做了简单的检查了这console.log(execcode)alert(execcode)来验证它是否正确加载。

但是,我可以保证,这是几乎肯定是一个非常非常糟糕的主意。对于某人编辑您的DOM并插入他们想要的任何恶意JavaScript,这将是微不足道的。

+0

完美的工作..谢谢 – Jannuzzo

+0

不客气,但请记住,你可能不应该在生产环境中这样做。 –