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 に答える