Un conteneur utilisé pour afficher le contenu d'un menu popup. Lorsqu'un menupopup est ouvert, il flotte par dessus la fenêtre et peut s'étendre en dehors de celle-ci. Les menupopups peuvent être utilisés de plusieurs manières :
- On peut les placer dans un élément
menu
,menulist
oubutton
avec l'attribut type défini à « menu » pour créer un popup qui s'ouvrira lors d'un clic sur le bouton ou menu. - On peut les attacher à n'importe quel élément à l'aide de l'attribut
popup
. Lors d'un clic gauche sur l'élément, le menupopup sera affiché. - On peut les attacher à n'importe quel élément à l'aide de l'attribut
context
. Lors de l'ouverture d'un menu contextuel, le menupopup sera affiché. Un menu contextuel peut être ouvert par un clic droit sur l'élément ou l'appui sur la touche menu du clavier.
Vous trouverez plus d'informations dans le Tutoriel XUL.
- Attributs
- ignorekeys, left, onpopuphidden, onpopuphiding, onpopupshowing, onpopupshown, position, top
- Propriétés
- accessibleType, popupBoxObject, popup, state
Exemples
L'exemple suivant montre l'attachement d'un menupopup à un élément 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>
L'exemple qui suit montre l'utilisation d'un menupopup comme menu contextuel d'un élément. Lors d'un clic droit sur le label, le menu sera affiché.
<menupopup id="clipmenu"> <menuitem label="Couper"/> <menuitem label="Copier"/> <menuitem label="Coller"/> </menupopup> <label value="Clic droit pour ouvrir un popup" context="clipmenu"/>
Attributs
-
onpopuphiding
- Type : code de script
- Cet évènement est envoyé à un popup lorsqu'il est sur le point d'être masqué.
-
onpopupshowing
- Type : code de script
- Cet évènement est envoyé à un popup juste avant son ouverture. On l'utilise généralement pour définir dynamiquement le contenu lorsque l'utilisateur demande son affichage. Si ce gestionnaire d'évènement renvoie
false
, le popup ne s'affichera pas.
-
onpopupshown
- Type : code de script
- Cet évènement est envoyé à un popup après son ouverture, de la même manière qu'un évènement
onload
est envoyé à une fenêtre à son ouverture.
- position
- Type : une des valeurs ci-dessous
- L'attribut
position
détermine où le popup apparaît par rapport à l'élément sur lequel l'utilisateur a cliqué pour l'invoquer. C'est ce qui permet de placer le popup sur le bord d'un bouton.
-
after_start
: Le popup apparait en dessous l'élément avec le coin supérieur gauche du popup aligné avec le coin inférieur gauche de l'élément. Les bords gauches de l'élément et du popup sont sur la même ligne. Cette valeur est typiquement uilisée pour les menus déroulants. -
after_end
: Le popup apparait en dessous l'élément avec le coin supérieur droit du popup aligné avec le coin inférieur droit de l'élément. Les bords droits de l'élément et du popup sont sur la même ligne. -
before_start
: Le popup apparait au dessus de l'élément avec le coin inférieur gauche du popup aligné avec le coin supérieur gauche de l'élément. Les bords gauches de l'élément et du popup sont sur la même ligne. -
before_end
: Le popup apparait au dessus de l'élément avec le coin inférieur droit du popup aligné avec le coin supérieur droit de l'élément. Les bords droits de l'élément et du popup sont sur la même ligne. -
end_after
: Le popup apparait à la droite de l'élément avec le coin inférieur gauche du popup aligné avec le coin inférieur droit de l'élément. Les bords inférieurs de l'élément et du popup sont sur la même ligne. -
end_before
: Le popup apparait à la droite de l'élément avec le coin supérieur gauche du popup aligné avec le coin supérieur droit de l'élément. Les bords supérieurs de l'élément et du popup sont sur la même ligne. -
start_after
: Le popup apparait à la gauche de l'élément avec le coin inférieur droit du popup aligné avec le coin inférieur gauche de l'élément. Les bords inférieurs de l'élément et du popup sont sur la même ligne. -
start_before
: Le popup apparait à la gauche de l'élément avec le coin supérieur droit du popup aligné avec le coin supérieur gauche de l'élément. Les bords supérieurs de l'élément et du popup sont sur la même ligne. -
overlap
: Le popup apparait par dessus l'élément avec les coins supérieurs gauches alignés. -
at_pointer
: Le popup apparait à la position du pointeur de la souris. -
after_pointer
: Le popup apparait à la même position horizontale que le pointeur de la souris, mais verticalement, il est placé juste sous l'élément.
Propriétés
-
accessibleType
- Type : entier
- Une valeur indiquant le type d'objet d'accessibilité pour l'élément.
-
popupBoxObject
- Type : nsIPopupBoxObject
- Cette propriété en lecture seule conserve le nsIPopupBoxObject qui implémente le popup. Il n'est normalement pas nécessaire d'utiliser cette propriété étant donné que toutes ses fonctions sont disponibles via le popup lui-même.
-
state
- Type : chaîne
- Cette propriété en lecture seule indique si le popup est ouvert ou non. Quatre valeurs sont possibles :
-
closed
: Le popup est fermé et non visible. -
open
: Le popup est ouvert et visible sur l'écran. -
showing
: Une requête a été faite pour ouvrir le popup, mais il n'a pas encore été affiché. Cet état se produit durant l'évènementpopupshowing
. -
hiding
: Le popup est sur le point d'être masqué. Cet état se produit durant l'évènementpopuphiding
.
Méthodes
-
hidePopup()
- Type de retour : pas de valeur de retour
- Ferme le popup immédiatement.
-
moveTo( x, y )
- Type de retour : pas de valeur de retour
- Déplace le popup vers un nouvel emplacement.
-
openPopup( anchor , position , x , y , isContextMenu, attributesOverride )
- Type de retour : pas de valeur de retour
Ouvre le popup relativement à un nœud spécifié à un emplacement spécifique.
Le popup peut soit être ancré à un autre nœud ou ouvert librement. Pour ancrer un popup à un nœud, fournissez un nœud d'accrochage dans le paramètre anchor
et définissez la position
par une chaîne indiquant la manière dont le popup doit être ancré.
Les valeurs possibles pour le paramètre position
sont : before_start, before_end, after_start, after_end, start_before, start_after, end_before, end_after, overlap, after_pointer
Le nœud d'accrochage ne doit pas nécessairement être dans le même document que le popup.
Si le paramètre attributesOverride
vaut true
, l'attribut position
sur le nœud popup a priorité sur la valeur du paramètre position
. Si attributesOverride
vaut false
, l'attribut n'est utilisé que si le paramètre position
est vide.
Pour un popup ancré, les paramètres x
et y
peuvent être utilisés pour décaler le popup de sa position d'ancrage de quelques pixels (mesurés en pixels CSS).
Les popups non ancrés peuvent être créés en fournissant null
comme paramètre anchor
. Un popup non ancré apparait à la position spécifiée par x
et y
relativement à la zone visible (viewport) du document contenant le nœud popup. Dans ce cas, les paramètres position
et attributesOverride
sont ignorés.
-
openPopupAtScreen( x, y, isContextMenu )
- Type de retour : pas de valeur de retour
Ouvre le popup à une position spécifique sur l'écran spécifiée par x
et y
. Cette position peut être ajustée s'il s'avère qu'elle provoquerait l'apparition du popup en dehors de l'écran. Les coordonnées x
et y
sont mesurées en pixels CSS.
-
showPopup( element, x, y, popupType, anchor, align )
Déprécié dans Mozilla 1.9 - Type de retour : aucune valeur de retour
- Ouvre un élément popup. Deux moyens de spécifier l'emplacement où s'affichera la fenêtre popup existent, soit en spécifiant une position spécifique de l'écran, soit par rapport à un autre élément de la fenêtre. Si <var>x</var> ou <var>y</var> sont définies par une valeur, le popup apparaîtra aux coordonnées (<var>x</var>,<var>y</var>) de l'écran. Si <var>x</var> et <var>y</var> sont définies à
-1
, le popup sera positionné par rapport à l'<var>element</var> spécifié dans le premier paramètre. C'est cette dernière méthode qu'il faut utiliser, par exemple, pour afficher un popup sous un bouton. Dans ce cas, les paramètres <var>anchor</var> et <var>align</var> peuvent être utilisés pour contrôler plus avant l'endroit où apparaîtra le popup par rapport à l'élément. Le paramètre <var>anchor</var> correspond à l'attributpopupanchor
de l'élément et le paramètre <var>align</var> correspond à l'attributpopupalign
. Les paramètres <var>anchor</var> et <var>align</var> sont ignorés si ni <var>x</var> ni <var>y</var> ne valent-1
.
- Pour qu'un popup apparaisse à une position relative à un autre élément tout en étant décalé de quelques pixels, déterminez la position réelle de l'élément à l'aide de ses propriétés
boxObject
.screenX etboxObject
.screenY, et utilisez celles-ci comme paramètres <var>x</var> et <var>y</var> en y ajoutant les décalages souhaités.
- Le paramètre <var>popupType</var> doit être une des chaînes
popup
,context
outooltip
. Chaque type de popup est destiné à être affiché temporairement ; ils ne sont pas censés être affichés de façon permanente. On ne peut afficher qu'un popup à la fois.
-
sizeTo( <i>largeur</i>, <i>hauteur</i> )
- Type de retour : aucune valeur de retour
- Modifie la taille actuelle de la fenêtre popup avec les nouvelles dimensions <var>largeur</var> et <var>hauteur</var>.
Sujets liés
- Éléments
-
menu
,menubar
,menuitem
,menulist
,menuseparator
- Interfaces
- nsIAccessibleProvider, nsIDOMXULPopupElement