IE以外のブラウザ。
<script type="text/javascript">
var testScript = document.createElement("script");
var scriptText = document.createTextNode("alert('Hello!');");
testScript.appendChild(scriptText);
document.body.appendChild(testScript);
</script>
Internet Explorerの場合はこちら。
<div id="test" style="display: none;"></div>
<script type="text/javascript">
document.getElementById("test").innerHTML = " <script type='text¥/javascript' defer='defer'>alert('Hello!');<¥/script>";
</script>
上記プログラムで実行できます。ポイントは下記の2点です。
- innerHTMLに設定している先頭の
- scriptタグのプロパティに設定しているdefer属性
defer属性については、Microsoftのサイトに記載してあります。
innerHTML property (Internet Explorer)
When using innerHTML to insert script, you must include the defer attribute in the script element.
最後に、以下のサイトが参考になりました。ありがとうございました。
JavaScriptによって動的に script要素を追加する場合のブラウザごとの挙動の違い
[JavaScript][DOM]innerHTMLでscriptする
あと、今回の感想としては、Operaは素晴らしいということでした。