0

我有一个 div,里面有一些示例代码。我想在按下按钮后执行这段代码。这是我尝试过的:

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 
4

1 回答 1

1

如果您确实将正确的 HTML 转换为 execcode,则可以使用

eval(execcode);

您可以通过简单的操作console.log(execcode)alert(execcode)验证它是否正确加载来检查这一点。

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

于 2013-07-11T09:52:34.197 回答