題名のとおり。

  var div = documtnt.createElement('div');
  div.innerHTML = "test";
  $('sample').appendChild(div);  // => OK
  var js = document.createElement('script');
  js.innerHTML = "alert('test');";  // => NG
  $('sample').appendChild(js);

外部ファイルの読み込みは大丈夫なので、それで対応した。

ところがいくつかの外部JSファイルを読み込んでいて、さらに実行する順序に決まりがある場合、後に読むべきJSが先に読まれてエラーになったりした。 なので、以下のように対処。

  function A() {
    // 外部JSファイルの読み込みと実行
  }

  function B() {
    if (typeof Aで宣言される変数 == "undefined") {
      setTimeout(argument.callee, 100);
      return;
    }

    // 外部JSファイルの読み込みと実行
  }

さらっと書いたけど、2時間もこの問題の解決にかかってしまった。javascriptを書いていると、IEにはいつもやられるのだ。