普通にMozillaやNS7をインストールしただけだと、XULをいじるのにはちょっと不便です。以下の設定をしておいて、あらかじめ開発環境を整えておくことをお勧めします。
プロファイルディレクトリのprefs.jsを開き、以下の行を追加して下さい。
user_pref("nglayout.debug.disable_xul_cache", true);
XULのキャッシュが有効だと、XULを書き換えても、Moz/NS自体を再起動するまで変更が反映されません。これは面倒きわまりないです。ウィンドウを開き直すだけで変更を反映させるには、隠し設定を使ってキャッシュを切る必要があります。
プロファイルディレクトリのprefs.jsを開き、以下の行を追加して下さい。
user_pref("javascript.options.strict", true);
user_pref("javascript.options.showInConsole", true);
「Tool(ツール)」→「Web Development(Web開発)」から起動できるJavaScriptコンソールには、実行したJavaScriptのエラーが表示されますが、通常はWebページ内のJavaScriptエラーしか報告されません。XUL自体のJavaScriptエラーを表示させるには、これらの隠し設定を使う必要があります。
dump()
を有効にするプロファイルディレクトリのprefs.jsを開き、以下の行を追加して下さい。
user_pref("browser.dom.window.dump.enabled", true);
windowオブジェクトのdumpメソッドを使うと、 dump("Initialize complete\n");
というような書式で、後述するコンソールウィンドウにメッセージを表示させることができます。dump
でのメッセージ表示はalert
と違って処理が中断されないため、処理の進行状況をリアルタイムで監視することができます。
dump()
で出力したメッセージを見る――コンソールモードJavaScriptコンソールやJavaコンソールとは別に、Moz/NS自身にもコンソールがあります。Windows環境では netscp.exe -console という具合に-consoleオプションを付けると、コンソール付きでMoz/NSを起動することができます。
window.dump
メソッドに渡したメッセージはコンソールの中にリアルタイムで出力されます。他の処理を中断させずに済むため、デバッグの上で大きな助けになるでしょう。
Linux、FreeBSD、Unixなどの環境では、Windowsでのコンソールモードのような特別なオプションは要りません。ターミナルからコマンドラインでMoz/NSを起動すれば、そのままターミナルにメッセージが出力されるようになります。ちなみに、Mac OS Xでもこの方法を使います。