ファイル内で定義されています。メニューのメニュー項目をクリックすると一度だけ呼び出されます。いう名前の特別なオブジェクトを定義しており、関数へ渡す引数としてよく使用されます。イベントハンドラについては、後で詳しく説明します。このファイルでイベントが起こった時に何が行われているかを見ていきましょう。名前空間を定義しています。定義したすべてのオブジェクトや変数はグローバルです。他の拡張機能内のスクリプトが、このファイルの変数へアクセスできてしまうことを意味しています。他の一般的な名前でオブジェクトを定義すると、それらが既存のオブジェクトと競合してしまうことも意味しています。このオブジェクトの中に私たちのすべてのオブジェクトを収めることで、他の拡張機能によって複製されたり上書きされたりすることが起こらなくなります。演算子のページをお読みください。初期化することは同等です。私たちのオブジェクトです。このように冗長な名前を付けて参照する方法は落ち着かないかもしれませんが、そうするだけの価値があります。スタイルのコメントを使用します。コードで使用されているものと似た標準のスタイルです。ドキュメントを自動的に生成できます。window.alert(message);}ようやく、関数の宣言まできました。行のコードは、動作に必要なコードのすべてです。要素を保持する変数です。スコープの範囲が制限されています。宣言のページをお読みください。使用することができます。要素への参照を取得します。与えるだけで動的に取り扱うことができる特別な要素です。メソッドを呼び出し、画面に表示されるローカライズされたメッセージを取得しています。関数をメッセージ付きで呼び出します。種類があり、この例では両方とも使用しています。内のテキストを表示する方法として最も効率的な方法です。可能な限り、これを使用してください。動的に生成されるテキストには使用できないなど融通が利かない場合もあるので、ローカライズされた文字列を取得する代わりの方法が必要です。メニューのコードに戻ります。accesskey="&xulschoolhello.helloItem.accesskey;"これらの属性は、メニューに表示されるテキストを定義している文字列キーです。ファイルではキーだけが指定されていることに注意してください。これを守らないと、おかしなパースエラーが起こり、ローカライズが正しく行われません。アクセスキーは、キーボードだけでメニューをすばやく操作できるようにするためのショートカットです。これらは、視力が弱い人や身体に障害があるためマウスを使えない人の、アクセシビリティの問題を回避してメニューを操作できるようにする唯一の方法でもあります。これを使用してください。(日本語版の場合は、英語版に合わせます)。アクセスキーが重複しないように気を付けなければなりません。メニューやサブメニューの同じ階層でアクセスキーが重複してはいけません。ウィンドウ内には多くのコントロールがあるため、アクセスキーを選定する際はさらに気を付けてください。気を付けなければならないのは、オーバーレイ上のアクセスキーの選定です。使用することができません。これは、ヘルプメニューのアクセスキーに使用されています。ウインドウメニューと重複するため使用できません。文字を設定しています。文字列は、ドキュメントが読み込まれた時に確定され、設定されます。属性の値を要求すると、文字列キーではなく、ローカライズされた文字列が取得されます。キーに動的に変更することはできません。文字列をすべてのローカライズに適用できない理由です。オーバーレイを適用しているため、ドキュメントごとに一つでなければなりません。この要素は、完全に不可視です。