ポップアップメニューの内容を表示するために使用されるコンテナ。menupopup が開かれると、ウィンドウ上に浮いて境界の外まで拡がります。menupopup の使用方法には以下のようなものがあります。
- メニューやボタンが押下されたときに開くポップアップを生成するため、
menu
やmenulist
、toolbarbutton
、または type 属性に "menu" が設定されたbutton
内に設置する。 popup
属性を使用して任意の要素に結び付ける。要素がマウスの左ボタンでクリックされると、menupopup が表示されます。context
属性を使用して任意の要素に結び付ける。コンテキストメニューが開かれると、menupopup が表示されます。コンテキストメニューは、要素を右クリックするか、キーボードのメニューキーを押下することによって開きます。
詳しい情報は、XUL チュートリアルとポップアップガイドを参照してください。
- プロパティ
- accessibleType, anchorNode, popupBoxObject, position, state, triggerNode
例
次の例は、menupopup を menulist
に取り付ける方法を示します。
<menulist> <menupopup> <menuitem label="Mozilla" value="https://mozilla.org"/> <menuitem label="Slashdot" value="https://slashdot.org"/> <menuitem label="Sourceforge" value="https://sf.net"/> <menuitem label="Freshmeat" value="https://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"/>
属性
-
ignorekeys
- 型: 論理型
-
true
に設定した場合、popup 内の項目のキーボード操作は無効になります。
-
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 オブジェクトの種類を示す値。
anchorNode
読取専用- 型:
nsIDOMElement
- この読み取り専用プロパティは、ポップアップを開いたときにアンカーとして指定された DOM ノードを保持しています。
-
popupBoxObject
- 型: nsIPopupBoxObject
- この読み取り専用のプロパティは、popup を実装する nsIPopupBoxObject を保持しています。popup 自身を通して関数のすべてを利用できるため、通常、このプロパティを使用する必要はありません。
-
state
- 型: 文字列型
- popup が開かれているかどうかを示します。このプロパティは読み取り専用です。次の 4 つの値が利用可能です:
closed
: popup は閉じられており、画面上に表示されていません。open
: popup は開かれており、画面上に表示されています。showing
: popup を開く要求がされているが、まだ開かれていない状態。この状態は popupshowing イベントの間に起こります。hiding
: popup が隠されます。この状態は popuphiding イベントの間に起こります。
triggerNode
- Type:
nsIDOMNode
- This read-only property holds the DOM node that generated the event triggering the opening of the popup. The value is
null
if the popup isn't open.
メソッド
("moveTo")}}
特定のノードから見た相対的な指定位置にポップアップを開きます。
ポップアップは他のノードにアンカーすることも、自由な位置に開く事もできます。ポップアップをノードにアンカーするには、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 単位で計測されます。
setConsumeRollupEvent( consume )
- Return type: no return value
Controls whether or not the event that caused the popup to be automatically dismissed (or "rolled up") should be consumed or be dispatched as a normal event. If a non-default behavior is desired, this method should be called immediately prior to calling openPopup
or openPopupAtScreen
.
Possible values for consume
are:
ROLLUP_DEFAULT
- The default for the current platform.
ROLLUP_CONSUME
- Consume the rollup event.
ROLLUP_NO_CONSUME
- Don't consume the rollup event.
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