文字コードがUTF-8になっていないためのエラーだった。ただ今度の場合、開発環境のWindowsXPでは正常に動作していたので、ユーザーの運用環境であるWindowsServer2003でエラーをしたときもそれが原因だとは思わなかった。
インターネットで見つけたJavascriptのサンプルを一部修正して使ったのだが案の定Shift-JISで保存されたものだった。一部に日本語が使われていたが、正常に動作してたためそのまま使っていたのだ。
それがWindowsServer2003では読み込み時にエラーして全く使えない状態になり(下図)、

そこで初めて問題に気が付いたわけである。しかも自分で書いた以前のTipsのことをすっかり忘れていて数時間無駄に原因を調べていた。が、このときJavascriptのデバックの方法を見つけたのが唯一の収穫でもあった。
Javascriptをデバッグするときこれまで良く使ったのはalert文を使って途中で止めることだった。これだと予想されるバグの発生場所にいくつもalertを書いていかなくてはいけないので結構面倒だった。
それが、次の方法で不要になる。ただしブラウザはIEに限るが。
IEのインターネットオプションの「詳細設定」で上図のように「スクリプトのデバッグを使用しない(Internet Explorer)」のチェックを外す。こうするとエラーの発生した場所(行番号)とエラー内容を表示してくれる。(下図)
エディタ画面にもその外部Javascriptソースが開きカーソルが点滅している。
ともかく外部Javascriptは必ずUTF-8で保存しておこう

