今日の衝撃

IE(6sp2と7RC1で確認)では以下の単純なコードがうまくいかない。DOMは正しく挿入されているのに主要なブロックのサイズが全部0になってしまい表示されないのだ。

<script type="text/javascript">
function addTable() {
  var table = document.createElement('table');
  var tr = document.createElement('tr');
  var td = document.createElement('td');
  td.appendChild(document.createTextNode('hogehoge'));
  tr.appendChild(td);
  table.appendChild(tr);
  document.getElementById('container1').appendChild(table);
}
</script>

<body onload="addTable()">
<div id="container1"></div>
</body>

同等のHTML片をinnerHTMLに代入すればちゃんと表示される。

ググッたら答えを発見。IEではDOMでappendChildするときはtbodyも省略せず構築しないと表示されない、らしい。。。

こういう本質的でない一つ一つの障害にめげずにトライし続ける根気こそ、DHTML開発に必要なものといえよう。
私はめげたので今日は早く帰ります。