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