2006年10月19日(木) [過去の今日]
#2 IEで俺の書いたJavaScriptが動かない件について
別にIEで動かなくてもいいかなあとか思いながら書いてたのだが、prototype.js使って差異は吸収してるはずだし、DOM使ってるので処理系依存はそんなにないはずだしで、動かない理由がさっぱりわからない。わからないと気になるもので、しばらくうんうんうなってたのだが、例によってものすごい簡単な事だった。
prototype.jsのAjax.Requestを
var ajax = new Ajax.Request( uri, { method: 'get', onComplete: hoge(), });
なんてふうに書いてたのがすべての元凶。Firefoxでは問題なく動くのだが、MSIEではエラーになる。デバッガ起動してもさっぱり。ぱっと見問題なさそうでしょ? ところが、
onComplete: hoge(),
これ、これがまずかった。
どーも、MSIEのJScriptは、こういったリストの末尾に「,」があるとエラーになるらしい。書き足したり書き換えたりするのに便利なのでperlとかでも必ずこうやって 尻カンマ を打ってたので、これが使えないとはちょっとショック。いやむしろショックなのはこれでものすごい時間潰してしまったことだが……。
(@363)