2011-02-08 9 views
3

私はタグに書き込むスクリプトを動的に書き出したい(評価した)。なぜこのコードは動作しませんか?動的に書き込みと評価を行う<script>

<html> 
<head> 

<script id="cojs"> 

</script> 

<script type="text/javascript"> 
document.getElementById('cojs').innerHTML = 'alert("hey");'; 
</script> 
</head> 
<body> 
</body> 
</html> 
+0

私はなぜ尋ねることができますか?あなたは 'eval'を使用できませんか? –

+1

...どうしてあなたはそれをやりたいのですか?なぜあなたは警戒( "ちょっと")をしないのですか? (または他のコード)右のどこですか?何とかどこか別の場所に配置(実行)する必要があるのはなぜですか? –

+0

スクラム:私はeval()などを使って動的にjsを動かすことができます。クレヨン:これは簡単な例です。実際のコードでは、ajaxレスポンスに応じてjavascriptを実行する必要があります。 – babonk

答えて

1

ウェルスクリプトタグは、解析時に評価されます。したがって、上記のセクションは、あなたがそれを変更した後でもう解析されないので、動作しません。

あなたのユースケースは、それがeval関数を試すことができた場合:

<html> 
<head> 
    <script type="text/javascript"> 
    eval('alert("hey");'); 
    </script> 
</head> 
<body> 
</body> 
</html> 
0

スクリプトを解釈させたい場合は、ドキュメントに追加する必要があります。 一部のブラウザでは、スクリプトにinnerHTMLは使用されませんが、すべてがスクリプトのtextプロパティを設定します。

<!doctype html> 
<html lang= "en"> 
<head> 
<meta charset= "utf-8"> 
<title> title</title> 

<script> 
    window.onload=function(){ 
     var head=document.getElementsByTagName('head')[0], 
     who= document.createElement('script'); 
     who.text= 'alert("hey");'; 
     head.appendChild(who); 
    } 
</script> 

</head> 
<body> 
</body> 
</html> 
関連する問題