2016-11-29 6 views
0

私はたとえば、あなたがこのテキストを持っているJavaScriptで変数(文字列)、持っている:を実行し、文字列の内部コードのJavascript

"document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';" 

を私はAjaxとPHPを使用して、この変数を得たが、それはどこではありません私の(おそらく非常に簡単な)質問についてです。

私はこのコードを文字列ではなくコード自体として使用したいと思うので、これは文字列ではなく、その内部のコードを実行したいと思います。

どうすればこのようにすることができますか?事前に

おかげ

答えて

3

これを行わないでください。 It's a security nightmare

あなたは本当に、これを行うのようにeval()を使用する必要がある場合:あなたの例と説明を考慮すると

eval("document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';"); 

、私はあなたが、その内容はjavascriptを完全に構成されたURLを取得していると思われます。あなたが実行した問題は、そのURLを取得するために使用しているメソッドが、そのJavaScriptを含む文字列を与えることです。代わりに<script>要素を使用してそのコードを読み込むことをお勧めします。動的にそうするために:ここでは

var script = document.createElement("script"); 
script.src = "url/to/your/javascript"; 
document.getElementByTagName('body')[0].appendChild(script); 
1

あなたはeval()メソッドを使用することができます。しかし、あなたがする必要がなければ、それをしないでください。 の場合は、が必要です。何をしているのかを確認してください。

eval("document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';") 
0

eval()を使用する代わりです:

var stringContainingJavascript = "document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';" 

var body = document.getElementsByTagName('body')[0]; 

var paragraph = document.createElement('p'); 
paragraph.id = 'tekst'; 
body.appendChild(paragraph); 

var script = document.createElement('script'); 
var scriptText = document.createTextNode(stringContainingJavascript); 
script.appendChild(scriptText); 
body.appendChild(script); 

上記のスクリプトは、<p>要素を作成し、文書の<body><p>を追加する前に、それをid="tekst"を与えます。

<script>を文書の<body>に追加する前に、同じスクリプトで<script>要素が作成され、その文字列が追加されます。

関連する問題