XUL:menupopup
出典: MDC
« XUL リファレンス HOME [ 例 | 属性 | プロパティ | メソッド | 関連項目 ]
ポップアップメニューの内容を表示するために使用されるコンテナ。menupopup が開かれると、ウィンドウ上に浮いて境界の外まで拡がります。menupopup の使用方法には以下のようなものがあります。
- メニューやボタンが押下されたときに開くポップアップを生成するため、menu や menulist、または type 属性に "menu" が設定された button 内に設置する。
- popup 属性を使用して任意の要素に結び付ける。要素がマウスの左ボタンでクリックされると、menupopup が表示されます。
- context 属性を使用して任意の要素に結び付ける。コンテキストメニューが開かれると、menupopup が表示されます。コンテキストメニューは、要素を右クリックするか、キーボードのメニューキーを押下することによって開きます。
詳しい情報は、XUL チュートリアルを参照してください。
- プロパティ
- accessibleType, popupBoxObject, popup, state
[編集] 例
次の例は、menupopup を menulist に取り付ける方法を示します。
<menulist>
<menupopup>
<menuitem label="Mozilla" value="http://mozilla.org"/>
<menuitem label="Slashdot" value="http://slashdot.org"/>
<menuitem label="Sourceforge" value="http://sf.net"/>
<menuitem label="Freshmeat" value="http://freshmeat.net"/>
</menupopup>
</menulist>
次の例は、menupopup を要素のコンテキストメニューとして使用する方法を示します。label を右クリックするとメニューが表示されます。
<menupopup id="clipmenu"> <menuitem label="Cut"/> <menuitem label="Copy"/> <menuitem label="Paste"/> </menupopup> <label value="Right click for popup" context="clipmenu"/>
[編集] 属性
|
XUL 要素からの継承 |
- ignorekeys
- 型: boolean
-
trueに設定した場合、popup 内の項目のキーボード操作は無効になります。
- onpopuphidden
- 型: スクリプトコード
- このイベントはポップアップが非表示になった時に発生します。
- 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 はマウスポインタと同じ水平位置に現れます。垂直位置は要素のすぐ下になります。
[編集] プロパティ
|
XUL 要素からの継承 DOM 要素からの継承 |
- accessibleType
- 型: integer
- 要素の accessibility オブジェクトの種類を示す値。
- popupBoxObject
- 型: nsIPopupBoxObject
- この読み取り専用のプロパティは、popup を実装する nsIPopupBoxObject を保持しています。popup 自身を通して関数のすべてを利用できるため、通常、このプロパティを使用する必要はありません。
-
closed: popup は閉じられており、画面上に表示されていません。 -
open: popup は開かれており、画面上に表示されています。 -
showing: popup を開く要求がされているが、まだ開かれていない状態。この状態は popupshowing イベントの間に起こります。 -
hiding: popup が隠されます。この状態は popuphiding イベントの間に起こります。
[編集] メソッド
- hidePopup()
- 戻り値の型: 戻り値なし
- 直ちにポップアップを閉じます。
- moveTo( x, y )
- 戻り値の型: 戻り値なし
- ポップアップを指定した位置へ移動します。
- openPopup( anchor , position , x , y , isContextMenu, attributesOverride ) Firefox 3 の新機能
- 戻り値の型: 戻り値なし
特定のノードから見た相対的な指定位置にポップアップを開きます。
ポップアップは他のノードにアンカーすることも、自由な位置に開く事もできます。ポップアップをノードにアンカーするには、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 ) Firefox 3 の新機能
- 戻り値の型: 戻り値なし
x と y で指定された画面上の特定の位置にポップアップを開きます。ポップアップが画面からはみ出るように指定された場合には位置が調整されます。座標 x と y は CSS の pixel 単位で計測されます。
- showPopup( element, x, y, popupType, anchor, align ) Mozilla 1.9 で非推奨
- 戻り値の型: 戻り値なし
- popup 要素を開きます。popup を表示する場所を指定するには二通りの方法があります。スクリーン位置を指定するか、window 内の要素からの相対位置を指定します。x または y に値を設定すると、popup がそのスクリーン座標 (x,y) に表示されます。x および y が
-1の場合、popup の位置は最初の引数 element で指定された要素からの相対位置になります。これは例えば、ボタンの下に popup を表示するときに使用します。この二番目の場合は、anchor および align 引数が、popup が現れる要素の相対位置をさらに制御するために使用されます。anchor 引数は要素上の popupanchor 属性に対応します。align 引数は要素上の popupalign 属性に対応します。x または y が-1でない場合、これらの引数は無視されます。
- popup をさらに数ピクセル離れた他の要素からの相対位置に表示するには、要素の boxObject.screenX プロパティおよび boxObject.screenY プロパティを使用し、それらを x および y 引数にオフセットとして値を与え、要素の実際のスクリーン位置を確定してください。
- popupType の値は、
popupまたはcontext,tooltipのいずれかの文字列でなければなりません。各 popup の形式は一時的に表示されることを意図しているため、永久に表示されることはありません。一度に一つの popup のみが表示されます。
- sizeTo( width, height )
- 戻り値の型: 戻り値なし
- ポップアップの現在の大きさを新しい width (幅) と height (高さ) に変更します。
[編集] 関連項目
- 要素
- menu, menubar, menuitem, menulist, menuseparator
