JavaScript の練習
Dan さんのページで JavaScript のプログラムが紹介されていますが、IE ( Internet Explorer ) では動かないそうです。
そこへ JavaScript の入門書を買って二日めのわたしが来ましたよ。
...というわけで入門書を読みつつ修正したのですが、なんと「はてなダイアリー」では JavaScript を書き込むことができない。事情があってのことのようですが、プログラマであるわたしには不便なことです。
取り急ぎ、動くようにするための修正箇所です。Dan さんのところにコメントを書くと長くなりそうなので、こちらに記述します。いつか Dan さんご自身が修正していただけるか、ほかの JavaScript が使えるブロガな方が修正版を公開されると良いのですが。
決め手は、innerHTML の入力先を table tag ではなく、div にすることでした。
まずは init() で table tag も指定します。
function init(){ var s='<table cellspacing="0" cellpadding="0">'; // ここで table tag まで指定 for (var i=0; i<90; i++){ s += '<tr>'; for (var j=0; j<90; j++){ s+='<td id="' + i + ',' + j + '"></td>'; } s += '</tr>'; } s+='</table>'; // ここで table tag 閉じます $('canvas').innerHTML=s; $('button').innerHTML="終了!"; $('button').setAttribute('onClick', 'stop()'); }
つぎに canvas 指定された table を div tag に変えます。
<td><table id="canvas" cellspacing="0" cellpadding="0"></table></td>
上記から、
<td><div id="canvas"></div></td>
このように div tag へ変えます。
という修正で、とりあえず IE 6.0 では動きました。IE では table への InnerHTML を許していないみたいですね。
ところで、この修正をした後も問題が残ります。「終了!」ボタンを押しても終了しないのですね。試行回数は 0 に戻るのですが、再び計算をはじめます。IE は clearTimeout() もサポートしていないのでしょうか。
中途半端ですが、とりいそぎご報告まで。