おおいしつかさ


旅行とバイクとドライブと料理と宇宙が好き。
Ubie Discoveryのプログラマ。
Share:  このエントリーをはてなブックマークに追加

IEではscript要素にinnerHTMLが使えない

題名のとおり。

  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にはいつもやられるのだ。