panel はあらゆる種類のコンテンツに対応するポップアップです。ウィンドウ装飾は一切持ちません。panel が開くとき、パネルはウィンドウの上に浮き (float)、メインウィンドウの境界の外側へも広がるかもしれません。通常、panel は popup
属性を使って要素に取付けられます。そうすることで、その要素をマウスの左ボタンでクリックして、パネルが表示できるようになります。また openPopup
メソッドを使ってスクリプト経由で開くこともできます。
panel は、その外側がクリックされるか、panel の hidePopup
メソッドが呼ばれると閉じられます。
panel
内にコンテンツの type を指定した browser
や iframe
を置く場合は、Web ページでマウス操作が正しく動作しません。このバグは バグ 130078 が原因です。正しく表示できるように type 属性を削除したくなるかもしれませんが、この属性を削除してはいけません。削除すると、読み込まれた Web ページが chrome へアクセスできてしまいます。- 属性
- ignorekeys, left, level, noautofocus, noautohide, norestorefocus, onpopuphidden, onpopuphiding, onpopupshowing, onpopupshown, position, top
- プロパティ
- accessibleType, popupBoxObject, popup, state
- メソッド
- hidePopup, moveTo, openPopup, openPopupAtScreen, sizeTo
例
以下の例はパネルがラベルに取り付けられる方法を示しています。
<panel id="thepanel"> <hbox align="start"> <image src="warning.png"/> <vbox> <description value="6 件の新着メールがあります。"/> <hbox> <button label="メールを読む"/> <button label="新規メッセージ"/> </hbox> </vbox> </hbox> </panel> <description value="6 件の新着メッセージ" popup="thepanel"/>
属性
-
ignorekeys
- 型: 論理型
- デフォルト値の
false
の場合、panel を閉じるために ESC キーが使用されます。true
の場合、panel を閉じるために ESC キーを使用することはできません。
-
level
- 型: 下記の値のいずれか一つ
- panel をすべてのウィンドウより手前に表示するかどうかを指定します。または、panel が含まれるウィンドウの手前に表示します。この属性が指定されていないときは、popup ウィンドウのレベルはプラットフォームに依存します。Linux のデフォルト値は
top
です。その他のプラットフォームのデフォルト値はparent
です。panel にテキストフィールドが含まれると、IME やオンスクリーンキーボードのポップアップが正しく表示されないため、この属性を設定してはいけません。テキストフィールドが含まれない通常の場合は値にtop
を設定してください。noautohide
属性の値がtrue
の場合、この level 属性は無視され、ウィンドウレベルは常にparent
と同じになります。
top
: panel は、他のアプリケーションを含む、すべての他のウィンドウの手前に現れます。parent
: panel は、panel 自身が含まれるウィンドウの手前に現れ、他のウィンドウより後ろに現れます。
-
noautofocus
- 型: 論理型
- デフォルト値の false の場合、現在フォーカスされている要素は、ポップアップが開かれるか閉じられるとフォーカスを失います。true の場合はフォーカスは変更されません。
-
noautohide
- 型: 論理型
- デフォルト値の
false
の場合、ユーザが panel の外側をクリックするかフォーカスを他のアプリケーションに切り替えると panel が隠されます。true
の場合、hidePopup メソッドが呼び出されると panel が閉じられます。
-
norestorefocus
- 型: 論理型
- デフォルト値の
false
の場合、panel が隠れている時、キーボードのフォーカスは panel が開いていた時の状態が復元されます。true
の場合、フォーカスはリセットされ、フォーカスが panel 内にあってもクリアされます。
-
onpopuphiding
- 型: スクリプトコード
- このイベントはポップアップを非表示にしようとしている時に発生します。
-
onpopupshowing
- 型: スクリプトコード
- このイベントは、ポップアップが開かれる直前にポップアップに送られます。通常、このハンドラはユーザがポップアップの表示を要求したとき、動的にコンテンツを設定するために使用されます。このイベントハンドラから
false
が返るとポップアップの表示が抑制されます。
-
onpopupshown
- 型: スクリプトコード
- このイベントはポップアップが表示された後に発生します。ウィンドウが開かれた時に発生する
onload
イベントと類似しています。
-
position
- 型: 下記の値のいずれか一つ
-
position
属性は、ユーザがクリックした要素に関する popup が現れる位置を決定します。これは、popup をボタンの側に置くことができます。
after_start
: popup は要素の下側に現れ、その左上隅と要素の左下隅が並びます。これは一般的に、ドロップダウンメニューに使用されます。after_end
: popup は要素の下側に現れ、その右上隅と要素の右下隅が並びます。要素と popup の右端が揃います。before_start
: popup は要素の上側に現れ、その左下隅と要素の左上隅が並びます。要素と popup の左端が揃います。before_end
: popup は要素の上側に現れ、その右下隅と要素の右上隅が並びます。要素と popup の右端が揃います。end_after
: popup は要素の右側に現れ、その左下隅と要素の右下隅が並びます。要素と popup の下端が揃います。end_before
: popup は要素の右側に現れ、その左上隅と要素の右上隅が並びます。要素と popup の上端が揃います。start_after
: popup は要素の左側に現れ、その右下隅と要素の左下隅が並びます。要素と popup の下端が揃います。start_before
: popup は要素の左側に現れ、その右上隅と要素の左上隅が並びます。要素と popup の上端が揃います。overlap
: popup は要素上に現れ、その左上隅が揃います。at_pointer
: popup はマウスポインタと同じ位置に現れます。after_pointer
: popup はマウスポインタと同じ水平位置に現れます。垂直位置は要素のすぐ下になります。
プロパティ
-
accessibleType
- 型: 整数型
- 要素の accessibility オブジェクトの種類を示す値。
-
popupBoxObject
- 型: nsIPopupBoxObject
- この読み取り専用のプロパティは、popup を実装する nsIPopupBoxObject を保持しています。popup 自身を通して関数のすべてを利用できるため、通常、このプロパティを使用する必要はありません。
-
state
- 型: 文字列型
- popup が開かれているかどうかを示します。このプロパティは読み取り専用です。次の 4 つの値が利用可能です:
closed
: popup は閉じられており、画面上に表示されていません。open
: popup は開かれており、画面上に表示されています。showing
: popup を開く要求がされているが、まだ開かれていない状態。この状態は popupshowing イベントの間に起こります。hiding
: popup が隠されます。この状態は popuphiding イベントの間に起こります。
メソッド
hidePopup()
- 戻り値の型: 戻り値無し
- 直ちにポップアップを閉じます。
moveTo( x, y )
- 戻り値の型: 戻り値なし
- ポップアップを指定した位置へ移動します。
特定のノードから見た相対的な指定位置にポップアップを開きます。
ポップアップは他のノードにアンカーすることも、自由な位置に開く事もできます。ポップアップをノードにアンカーするには、anchor ノードを指定して、ポップアップをどのように開くかを示す文字列を position に設定します。
position が取り得る値は before_start, before_end, after_start, after_end, start_before, start_after, end_before, end_after, overlap, after_pointer のいずれかです。
anchor ノードはポップアップと同じドキュメント内のものである必要はありません。
引数 attributesOverride が true ならば、ポップアップノードの position 属性が引数 position の値を上書きします。attributesOverride が false ならば、position 属性は引数 position が空の場合のみ使用されます。
アンカーされたポップアップでは、引数 x と y はアンカーされた位置からのオフセットとして使用されます。この数値は CSS の pixel 単位で計測されます。
アンカーされないポップアップは、anchor ノードとして null を指定することで作成できます。このポップアップは、ポップアップノードを含むドキュメントの表示領域からの、x と y で指定された相対位置に表示されます。この場合、引数 position と attributesOverride は無視されます。
引数 isContextMenu は、コンテキストメニューの場合は true に、それ以外の場合は false にしてください。この引数はメニュー項目のハイライトに影響します。コンテキストメニューが開かれている間は、それ以前に開かれたメニューはハイライトされず、メニュー内の項目を実行できません。
openPopupAtScreen( x, y, isContextMenu )
- 戻り値の型: 戻り値無し
x と y で指定された画面上の特定の位置にポップアップを開きます。ポップアップが画面からはみ出るように指定された場合には位置が調整されます。座標 x と y は CSS の pixel 単位で計測されます。
sizeTo( width, height )
- 戻り値の型: 戻り値無し
- ポップアップの現在の大きさを指定した width (幅) と height (高さ) に変更します。