nsIPromptService

  • Raccourci de la révision : nsIPromptService
  • Titre de la révision : nsIPromptService
  • ID de la révision : 111623
  • Créé :
  • Créateur : damien.flament
  • Version actuelle ? Non
  • Commentaire 1 words added, 1 words removed

Contenu de la révision

Cette page est en cours de traduction, son contenu peut donc être incomplet ou contenir des parties en anglais. N'hésitez pas à participer à sa traduction à partir de {{ mediawiki.internal(':en:nsIPromptService' .. $0 .. '|' .. $0, "fr") }}

Résumé

nsIPromptService peut être utilisée pour afficher de simples boîtes de dialogue. Ses méthodes devrait être utilisées de préférence à la place de window.alert(), window.confirm(), et des autres fonctions similaires du DOM.

Il est possible de définir les touches de raccourcis pour les boutons en insérant une esperluette ("&") devant le caractère correspondant. Si vous souhaitez insérer cette esperluette directement dans le texte du bouton (c'est-à-dire dans la valeur de l'attribut label, sans utiliser de déclaration d'entité XML), utilisez-en deux ("&&").

Certaines des méthodes de cette interface utilisent des paramètres en entrée/sortie. En C++, les paramètres en sortie sont représentés par des pointeurs de pointeurs (void**). En JavaScript, ce type de paramètre nécessite plus de travail car vous ne pouvez directement récupérer des paramètres en sortie. Vous devez les englober dans un objet. Cet objet peut être vide ou bien comporter un attribut value dont la valeur correspond au type du paramètre en sortie.
Pour de plus amples informations sur les paramètres en sortie en JavaScript, voir Working with out parameters.

{{ InterfaceStatus("nsIPromptService", "embedding/components/windowwatcher/public/nsIPromptService.idl", "FROZEN", "Mozilla 1.7.5", "yes") }}

Hérite de : {{ Interface("nsISupports") }}

Implémenté par : @mozilla.org/embedcomp/prompt-service;1. Pour créer une instance, faire comme suit :

var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
              .getService(Components.interfaces.nsIPromptService);

Aperçu des méthodes

void alert(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText);
void alertCheck(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle,
                in wstring aText, in wstring aCheckMsg, inout boolean aCheckState);
boolean confirm(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText);
boolean confirmCheck(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText,
                     in wstring aCheckMsg, inout boolean aCheckState);
PRInt32 confirmEx(in {{ Interface("nsIDOMWindow") }} aParent,in wstring aDialogTitle,in wstring aText,
                  in unsigned long aButtonFlags,in wstring aButton0Title,
                  in wstring aButton1Title,in wstring aButton2Title,in wstring aCheckMsg,
                  inout boolean aCheckState);
boolean prompt(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText,
               inout wstring aValue, in wstring aCheckMsg, inout boolean aCheckState);
boolean promptUsernameAndPassword(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle,
                                  in wstring aText, inout wstring aUsername,
                                  inout wstring aPassword, in wstring aCheckMsg,
                                  inout boolean aCheckState);
boolean promptPassword(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText,
                       inout wstring aPassword, in wstring aCheckMsg, inout boolean aCheckState);
boolean select(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText,
               in  PRUint32 aCount, [array, size_is(aCount)] in wstring aSelectList,
               out long aOutSelection);

Constantes

Les drapeaux décris ci-dessous sont combinés pour formé le paramètre aButtonFlags passé à la méthode {{ Anch("confirmEx()") }}. Tous les drapeaux sont des constantes de type unsigned long et sont accessibles via Components.interfaces.nsIPromptService.flagname en JavaScript et nsIPromptService::flagname en C++.

Drapeaux de position de bouton

Constante Valeur Description
BUTTON_POS_0 1  
BUTTON_POS_1 256  
BUTTON_POS_2 65536  

Drapeaux de titre de bouton 

Ces drapeaux sont utilisés conjointement avec les drapeaux de position pour modifier les textes des boutons de l'invite de commande.

Constante Valeur Description
BUTTON_TITLE_OK 1  
BUTTON_TITLE_CANCEL 2  
BUTTON_TITLE_YES 3  
BUTTON_TITLE_NO 4  
BUTTON_TITLE_SAVE 5  
BUTTON_TITLE_DONT_SAVE 6  
BUTTON_TITLE_REVERT 7  
BUTTON_TITLE_IS_STRING 127  

Drapeaux de bouton par défaut

Ces drapeaux sont utilisés pour spécifier le bouton par défaut.

Constante Valeur Description
BUTTON_POS_0_DEFAULT 0  
BUTTON_POS_1_DEFAULT 16777216  
BUTTON_POS_2_DEFAULT 33554432  

BUTTON_DELAY_ENABLE

Le drapeau BUTTON_DELAY_ENABLE désactive les boutons. Ils sont activés après un certaine durée. Son interprétation peut varier, puisque son seul intérêt est de s'assurer que l'utilisateur ne ferme pas trop rapidement une boîte de dialogue renseignant sur des informations sensibles (avertissement concernant la sécurité etc.). À proprement parlé, il peut être ignoré.
Un délai peut être utile non seulement pour donner plus de temps de réflexion à l'utilisateur avant d'agir, mais également comme mesure de sécurité contre les sites internet qui créent intentionnellement une situation de compétition. Par exemple, un invite de commande affichant un message d'avertissement concernant la sécurité est affiché de manière inattendue et le bouton de validation est actionné involontairement.

 

Constante Valeur Description
BUTTON_DELAY_ENABLE 67108864  

Drapeaux de boutons standards

Constante Valeur Description
STD_OK_CANCEL_BUTTONS 513

 boutons OK/Annuler.

(BUTTON_TITLE_OK *BUTTON_POS_0) +(BUTTON_TITLE_CANCEL * BUTTON_POS_1)

STD_YES_NO_BUTTONS 1027

 Boutons Oui/Non.

(BUTTON_TITLE_YES *BUTTON_POS_0) +(BUTTON_TITLE_NO * BUTTON_POS_1)

Méthodes

alert()

Affiche une boîte de dialogue avec un bouton de confirmation. Cette méthode est similaire window.alert(), excepté qu'elle permet de spécifier le titre de la boîte de dialogue. Vous devriez utiliser cette méthode à la place de window.alert.

void alert(
  in nsIDOMWindow aParent,
  in wstring      aDialogTitle,
  in wstring      aText
);

Paramètres

aParent
La fenêtre parente de la boîte de dialogue, ou null, dans le cas ou le parent est nsIWindowWatcher.activeWindow.
aDialogTitle
Le titre de la boîte de dialogue.
aText
Le texte de la boîte de dialogue.

Exemple

{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n                        .getService(Components.interfaces.nsIPromptService);\n\nprompts.alert(null, \"Title of this Dialog\", \"Hello! You have now been alerted.\");") }}

AlertExample.png

alertCheck()

Affiche une boîte de dialogue avec un bouton de confirmation et une case à coché accompagnée de son libellé.

void alertCheck(
  in    nsIDOMWindow aParent,
  in    wstring      aDialogTitle,
  in    wstring      aText,
  in    wstring      aCheckMsg,
  inout boolean      aCheckState
);

Paramètres

aParent
La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.
aDialogTitle
Le titre de la boîte de dialogue.
aText
Le texte de la boîte de dialogue.
aCheckMsg
Le libellé de la case à cocher.
aCheckState
Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).

Exemple

{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar check = {value: false}; // case à cocher décochée par défaut\n\nprompts.alertCheck(null, \"Title of this Dialog\", \"Hello! You have now been alerted.\",\n\"And this is a checkbox\", check);\n\n// check.value vaut true si la case est cochée, false sinon") }}

confirm()

Affiche une boîte de dialogue avec un bouton OK et un bouton Annuler.

boolean confirm(
  in nsIDOMWindow aParent,
  in wstring       aDialogTitle,
  in wstring       aText
);

Paramètres

aParent
La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.
aDialogTitle
Le titre de la boîte de dialogue.
aText
Le texte de la boîte de dialogue.

Valeur retournée

true si le bouton OK est actionné, false si le bouton Annuler est actionné.

Exemple

{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar result = prompts.confirm(null, \"Title of this Dialog\", \"Are you sure?\");\n\n// result vaut true si le bouton OK est actionné, false si c'est le bouton Annuler") }}

confirmCheck()

Affiche une boîte de dialogue avec un bouton OK et un bouton Annuler ainsi qu'une case à coché accompagnée de son libellé.

boolean confirmCheck(
  in nsIDOMWindow aParent,
  in wstring aDialogTitle,
  in wstring aText,
  in wstring aCheckMsg,
  inout boolean aCheckState
);

Paramètres

aParent
La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.
aDialogTitle
Le titre de la boîte de dialogue.
aText
Le texte de la boîte de dialogue.
aCheckMsg
Le libellé de la case à cocher. Si null, la case à cocher ne sera pas affichée.
aCheckState
Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).

Valeur retournée

true si le bouton OK est actionné, false si le bouton Annuler est actionné.

Exemple

{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar check = {value: true}; // case à cocher cochée par défaut\n\nvar result = prompts.confirmCheck(null, \"Title of this Dialog\", \"Are you sure?\",\n\"Don't ask again\", check);\n\n// check.value vaut true si la case à cocher est cochée ET que le bouton OK est actionné, false si le bouton Annuler est actionné.") }}

confirmEx()

Ouvre une boîte de dialogue comprenant 3 boutons et éventuellement une case à cocher accompagnée de son libellé.

Les boutons sont numérotés de 0 à 2. L'application peut décider d'afficher ces boutons de gauche à droite  ou de droite à gauche. Le bouton 0 est activé par défaut à moins qu'un drapeau de bouton par défaut ne soit spécifié.

Un bouton peut utiliser un libellé prédéfini, spécifié par l'un des drapeaux de libellé de bouton. Chaque libellé peut être multiplié par un drapeau de position de bouton pour assigner le libellé à un bouton particulier. Lorsque le drapeau BUTTON_TITLE_IS_STRING est utilisé pour un bouton, le paramètre de libellé de ce bouton est utilisé. Si la valeur de la position d'un bouton est à 0, le bouton ne sera pas affiché.

L'exemple suivant créé une boîte de dialogue avec un bouton OK et un bouton avec un libellé personnalisé :

{{ syntax.JavaScript("aButtonFlags = (BUTTON_POS_0) * (BUTTON_TITLE_OK) +\n               (BUTTON_POS_1) * (BUTTON_TITLE_IS_STRING) +\n                 BUTTON_POS_1_DEFAULT;") }}

confirmEx retourne toujours 1 lorsque l'utilisateur ferme la boîte de dialogue en utilisant le bouton de fermeture de la barre de titre ! {{ Bug("345067") }}
PRInt32 confirmEx(
  in nsIDOMWindow  aParent,
  in wstring aDialogTitle,
  in wstring aText,
  in unsigned long aButtonFlags,
  in wstring aButton0Title,
  in wstring aButton1Title,
  in wstring aButton2Title,
  in wstring aCheckMsg,
  inout boolean aCheckState
);

Paramètres

aParent
La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.
aDialogTitle
Le titre de la boîte de dialogue.
aText
Le texte de la boîte de dialogue.
aButtonFlags
aButtonFlags est une combinaison de drapeaux de boutons.
aButton0Title
Libellé du bouton 0 si la valeur (BUTTON_TITLE_IS_STRING*BUTTON_TITLE_POS_0) est utilisé pour le paramètre aButtonFlags.
aButton1Title
Libellé du bouton 1 si la valeur (BUTTON_TITLE_IS_STRING*BUTTON_TITLE_POS_1) est utilisé pour le paramètre aButtonFlags.
aButton2Title
Libellé du bouton 2 si la valeur (BUTTON_TITLE_IS_STRING*BUTTON_TITLE_POS_2) est utilisé pour le paramètre aButtonFlags.
aCheckMsg
Le libellé de la case à cocher.
aCheckState
Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).

Valeur retournée

L'index du bouton actionné.

Exemple

{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar check = {value: false}; // case à cocher décochée par défaut\nvar flags = prompts.BUTTON_POS_0 * prompts.BUTTON_TITLE_SAVE +\nprompts.BUTTON_POS_1 * prompts.BUTTON_TITLE_IS_STRING +\nprompts.BUTTON_POS_2 * prompts.BUTTON_TITLE_CANCEL;\n// Ces drapeaux créent 3 boutons. Le premier est un bouton \"Save\", le\n// second la valeur de aButtonTitle1, et le troisième un bouton \"Cancel\"\n\nvar button = prompts.confirmEx(null, \"Title of this Dialog\", \"What do you want to do?\",\nflags, \"\", \"Button 1\", \"\", null, check);\n\n// La case à cocher est cachée et button contient l'index du bouton acctionné,\n// 0, 1, ou 2.") }}

prompt()

Ouvre une boîte de dialogue contenant un champ texte et éventuellement une case à cochée accompagnée de son libellé.

boolean prompt(
  in nsIDOMWindow aParent,
  in wstring aDialogTitle,
  in wstring aText,
  inout wstring aValue,
  in wstring aCheckMsg,
  inout boolean aCheckState
);

Paramètres

aParent
La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.
aDialogTitle
Le titre de la boîte de dialogue.
aText
Le texte de la boîte de dialogue.
aValue
Contient la valeur par défaut du champ texte lors de l'appel de la méthode (la valeur null peut être utilisée pour un champ vide). Lorsque la méthode retourne le résultat, si l'utilisateur a actionné le bouton OK, ce paramètre contient la nouvelle valeur. Sinon, la valeur n'est pas modifiée. Si vous appelez cette méthode en JavaScript, vous devez englober cet argument dans un objet dont l'attribut value est une chaîne de caractère (ou utiliser un objet vide).
aCheckMsg
Le libellé de la case à cocher. Si null, la case à cocher ne sera pas affichée.
aCheckState
Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).

Valeur retournée

true si le bouton OK est actionné, false si le bouton Annuler est actionné.

Exemple

{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar check = {value: false}; // case à cocher décochée par défaut\nvar input = {value: \"Bob\"}; // valeur par défaut du champ texte à \"Bob\"\n\nvar result = prompts.prompt(null, \"Title\", \"What is your name?\", input, null, check);\n\n// result vaut true si le bouton OK est actionné, false si c'est le bouton Cancel. input.value content la valeur du champ texte si le bouton OKest actionné.") }}

promptUsernameAndPassword()

Ouvre une boîte dialogue contenant un champ texte, un champ de mot de passe et éventuellement une case à cocher accompagnée de son libellé.

boolean promptUsernameAndPassword(
  in nsIDOMWindow aParent,
  in wstring aDialogTitle,
  in wstring aText,
  inout wstring aUsername,
  inout wstring aPassword,
  in wstring aCheckMsg,
  inout boolean aCheckState
);

Paramètres

aParent
La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.
aDialogTitle
Le titre de la boîte de dialogue.
aText
Le texte de la boîte de dialogue.
aUsername
Nom d'utilisateur par défaut (valeur nulle acceptée). Si l'utilisateur a fermé la fenêtre en actionnant le bouton OK, ce paramètre contient la nouvelle valeur saisie. Sinon, la valeur n'est pas modifiée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).
aPassword
Mot de passe par défaut (valeur nulle acceptée). Si l'utilisateur a fermé la fenêtre en actionnant le bouton OK, ce paramètre contient la nouvelle valeur saisie. Sinon, la valeur n'est pas modifiée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).
aCheckMsg
Le libellé de la case à cocher. Si null, la case à cocher ne sera pas affichée.
aCheckState
Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).

Valeur retournée

true si le bouton OK est actionné, false si le bouton Annuler est actionné.

Exemple

{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar username = {value: \"user\"}; // nom d'utilisateur par défaut\n\nvar password = {value: \"pass\"}; // mot de passe par défaut\n\nvar check = {value: true}; // case à cocher cochée par défaut\n\nvar result = prompts.promptUsernameAndPassword(null, \"Title\", \"Enter username and password:\",\nusername, password, \"Save\", check);\n\n// result vaut true si le bouton OK est actionné, false si c'est le bouton Cancel.\n// username.value, password.value, et check.value contiennent les nouvelles valeurs saisies si le bouton OK est actionné.") }}

promptPassword()

Ouvre une boîte de dialogue contenant un champ mot de passe et éventuellement une case à cocher accompagnée de son libellé.

boolean promptPassword(
  in nsIDOMWindow aParent,
  in wstring aDialogTitle,
  in wstring aText,
  inout wstring aPassword,
  in wstring aCheckMsg,
  inout boolean aCheckState
);

Paramètres

aParent
La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.
aDialogTitle
Le titre de la boîte de dialogue.
aText
Le texte de la boîte de dialogue.
aPassword
Mot de passe par défaut (valeur nulle acceptée). Si l'utilisateur a fermé la fenêtre en actionnant le bouton OK, ce paramètre contient la nouvelle valeur saisie. Sinon, la valeur n'est pas modifiée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).
aCheckMsg
Le libellé de la case à cocher. Si null, la case à cocher ne sera pas affichée.
aCheckState
Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).

Valeur retournée

true si le bouton OK est actionné, false si le bouton Annuler est actionné.

Exemple

{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar password = {value: \"pass\"}; // mot de passe par défaut\n\nvar check = {value: true}; // case à cocher cochée par défaut\n\nvar result = prompts.promptPassword(null, \"Title\", \"Enter password:\", password, null, check);\n\n// result vaut true si le bouton OK est actionné, false si c'est le bouton Cancel.\n// password.value contient la nouvelle valeur saisie si le bouton OK est actionné. }} La case à cocher n'est pas affichée. ")

 

select()

Ouvre une boîte de dialogue contenant une liste de chaîne de caractères. L'utilisateur ne peut en sélectionner qu'une seule.

boolean select(
  in  nsIDOMWindow aParent,
  in  wstring       aDialogTitle,
  in  wstring       aText,
  in  PRUint32     aCount,
  [array, size_is(aCount)] in wstring aSelectList,
  out long         aOutSelection
);

Paramètres

aParent
La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.
aDialogTitle
Le titre de la boîte de dialogue.
aText
Le texte de la boîte de dialogue.
aCount
Taille du tableau aSelectList.
aSelectList
Liste de chaînes de caractères.
aOutSelection
Contient l'index de l'élément sélectionné dans la liste lorsque le bouton OK est actionné. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).

Valeur retournée

true si le bouton OK est actionné, false si le bouton Annuler est actionné.

Exemple

{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar items = [\"Hello\", \"Welcome\", \"Howdy\", \"Hi\", \":)\"]; // liste d'éléments\n\nvar selected = {};\n\nvar result = prompts.select(null, \"Title\", \"What greeting do you want?\", items.length, items, selected);\n\n// result vaut true si le bouton OK est actionné, false si c'est le bouton Cancel.\n\n// selected contient l'index de l'élément sélectionné. Accédez à cet élément avec selected items[selected.value].") }}

selectExample.png

Example code

promptPassword example

{{ Anch("promptPassword") }} displays a dialog with a password field and an optional checkbox.

var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                        .getService(Components.interfaces.nsIPromptService);

var password = {value: "pass"};              // default the password to pass

var check = {value: true};                   // default the checkbox to true

var result = prompts.promptPassword(null, "Title", "Enter password:", password, null, check);

// result is true if OK was pressed, false if cancel was pressed. password.value is
// set if OK was pressed. The checkbox is not displayed.

select example

{{ Anch("select") }} displays a dialog with a listbox of choices.

var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                        .getService(Components.interfaces.nsIPromptService);

var items = ["Hello", "Welcome", "Howdy", "Hi", ":)"]; // list items

var selected = {};

var result = prompts.select(null, "Title", "What greeting do you want?", items.length,
                            items, selected);

// result is true if OK was pressed, false if cancel. selected is the index of the item array
// that was selected. Get the item using items[selected.value].

See also

 

{{ languages( { "en": "en/nsIPromptService", "fr": "fr/nsIPromptService" } ) }}

Source de la révision

<div class="note">Cette page est en cours de traduction, son contenu peut donc être incomplet ou contenir des parties en anglais. N'hésitez pas à participer à sa traduction à partir de {{ mediawiki.internal(':en:nsIPromptService' .. $0 .. '|' .. $0, "fr") }}</div>
<h2>Résumé</h2>
<p><code>nsIPromptService</code> peut être utilisée pour afficher de simples boîtes de dialogue. Ses méthodes devrait être utilisées de préférence à la place de <a href="/en/DOM/window.alert" title="en/DOM/window.alert">window.alert()</a>, <a href="/en/DOM/window.confirm" title="en/DOM/window.confirm">window.confirm()</a>, et des autres fonctions similaires du DOM.</p>
<p>Il est possible de définir les touches de raccourcis pour les boutons en insérant une esperluette ("&amp;") devant le caractère correspondant. Si vous souhaitez insérer cette esperluette directement dans le texte du bouton (c'est-à-dire dans la valeur de l'attribut <code>label</code>, sans utiliser de déclaration d'entité XML), utilisez-en deux ("&amp;&amp;").</p>
<div class="note">Certaines des méthodes de cette interface utilisent des paramètres en entrée/sortie. En C++, les paramètres en sortie sont représentés par des pointeurs de pointeurs (<code>void**</code>). En JavaScript, ce type de paramètre nécessite plus de travail car vous ne pouvez directement récupérer des paramètres en sortie. Vous devez les englober dans un objet. Cet objet peut être vide ou bien comporter un attribut <code>value</code> dont la valeur correspond au type du paramètre en sortie.<br>
Pour de plus amples informations sur les paramètres en sortie en JavaScript, voir <a href="/en/Working_with_out_parameters" style="text-decoration: none; color: rgb(4, 137, 183) !important; cursor: default; " title="en/Working with out parameters">Working with out parameters</a>.</div>
<p>{{ InterfaceStatus("nsIPromptService", "embedding/components/windowwatcher/public/nsIPromptService.idl", "FROZEN", "Mozilla 1.7.5", "yes") }}</p>
<p>Hérite de : {{ Interface("nsISupports") }}</p>
<p>Implémenté par : <code>@mozilla.org/embedcomp/prompt-service;1</code>. Pour créer une instance, faire comme suit :</p>
<pre>var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
              .getService(Components.interfaces.nsIPromptService);</pre>
<h2 name="Method_overview">Aperçu des méthodes</h2>
<table class="standard-table"> <tbody> <tr> <td><code>void <a href="/fr/nsIPromptService#alert()" title="fr/nsIPromptService#alert()">alert</a>(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText);</code></td> </tr> <tr> <td><code>void <a href="/fr/nsIPromptService#alertCheck()" title="fr/nsIPromptService#alertCheck()">alertCheck</a>(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, <br>                 in wstring aText, in wstring aCheckMsg, inout boolean aCheckState);</code></td> </tr> <tr> <td><code>boolean <a href="/fr/nsIPromptService#confirm()" title="fr/nsIPromptService#confirm()">confirm</a>(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText);</code></td> </tr> <tr> <td><code>boolean <a href="/fr/nsIPromptService#confirmCheck()" title="fr/nsIPromptService#confirmCheck()">confirmCheck</a>(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText,<br>                      in wstring aCheckMsg, inout boolean aCheckState);</code></td> </tr> <tr> <td><code>PRInt32 <a href="/fr/nsIPromptService#confirmEx()" title="fr/nsIPromptService#confirmEx()">confirmEx</a>(in {{ Interface("nsIDOMWindow") }} aParent,in wstring aDialogTitle,in wstring aText,<br>                   in unsigned long aButtonFlags,in wstring aButton0Title,<br>                   in wstring aButton1Title,in wstring aButton2Title,in wstring aCheckMsg,<br>                   inout boolean aCheckState);<br> </code></td> </tr> <tr> <td><code>boolean <a href="/fr/nsIPromptService#prompt()" title="fr/nsIPromptService#prompt()">prompt</a>(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText, <br>                inout wstring aValue, in wstring aCheckMsg, inout boolean aCheckState);<br> </code></td> </tr> <tr> <td><code>boolean <a href="/fr/nsIPromptService#promptUsernameAndPassword()" title="fr/nsIPromptService#promptUsernameAndPassword()">promptUsernameAndPassword</a>(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, <br>                                   in wstring aText, inout wstring aUsername, <br>                                   inout wstring aPassword, in wstring aCheckMsg, <br>                                   inout boolean aCheckState);<br> </code></td> </tr> <tr> <td><code>boolean <a href="/fr/nsIPromptService#promptPassword()" title="fr/nsIPromptService#promptPassword()">promptPassword</a>(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText, <br>                        inout wstring aPassword, in wstring aCheckMsg, inout boolean aCheckState);<br> </code></td> </tr> <tr> <td><code>boolean <a href="/fr/nsIPromptService#select()" title="fr/nsIPromptService#select()">select</a>(in {{ Interface("nsIDOMWindow") }} aParent, in wstring aDialogTitle, in wstring aText, <br>                in  PRUint32 aCount, [array, size_is(aCount)] in wstring aSelectList, <br>                out long aOutSelection);<br> </code></td> </tr> </tbody>
</table>
<h2 name="Constants">Constantes</h2>
<p>Les drapeaux décris ci-dessous sont combinés pour formé le paramètre <code>aButtonFlags</code> passé à la méthode {{ Anch("confirmEx()") }}. Tous les drapeaux sont des constantes de type <code>unsigned long et sont accessibles via <code>Components.interfaces.nsIPromptService.<em>flagname</em></code> en JavaScript et <code>nsIPromptService::<em>flagname</em></code> en C++.</code></p>
<h3>Drapeaux de position de bouton</h3>
<table class="standard-table"> <tbody> <tr> <td class="header">Constante</td> <td class="header">Valeur</td> <td class="header">Description</td> </tr> <tr> <td><code>BUTTON_POS_0</code></td> <td><code>1</code></td> <td> </td> </tr> <tr> <td><code>BUTTON_POS_1</code></td> <td><code>256</code></td> <td> </td> </tr> <tr> <td><code>BUTTON_POS_2</code></td> <td><code>65536</code></td> <td> </td> </tr> </tbody>
</table>
<h3>Drapeaux de titre de bouton </h3>
<p>Ces drapeaux sont utilisés conjointement avec les d<span>rapeaux de position</span> pour modifier les textes des boutons de l'invite de commande.</p>
<table class="standard-table"> <tbody> <tr> <td class="header">Constante</td> <td class="header">Valeur</td> <td class="header">Description</td> </tr> <tr> <td><code>BUTTON_TITLE_OK</code></td> <td><code>1</code></td> <td> </td> </tr> <tr> <td><code>BUTTON_TITLE_CANCEL</code></td> <td><code>2</code></td> <td> </td> </tr> <tr> <td><code>BUTTON_TITLE_YES</code></td> <td><code>3</code></td> <td> </td> </tr> <tr> <td><code>BUTTON_TITLE_NO</code></td> <td><code>4</code></td> <td> </td> </tr> <tr> <td><code>BUTTON_TITLE_SAVE</code></td> <td><code>5</code></td> <td> </td> </tr> <tr> <td><code>BUTTON_TITLE_DONT_SAVE</code></td> <td><code>6</code></td> <td> </td> </tr> <tr> <td><code>BUTTON_TITLE_REVERT</code></td> <td><code>7</code></td> <td> </td> </tr> <tr> <td><code>BUTTON_TITLE_IS_STRING</code></td> <td><code>127</code></td> <td> </td> </tr> </tbody>
</table>
<h3>Drapeaux de bouton par défaut</h3>
<p>Ces drapeaux sont utilisés pour spécifier le bouton par défaut.</p>
<table class="standard-table"> <tbody> <tr> <td class="header">Constante</td> <td class="header">Valeur</td> <td class="header">Description</td> </tr> <tr> <td><code>BUTTON_POS_0_DEFAULT</code></td> <td>0</td> <td> </td> </tr> <tr> <td><code>BUTTON_POS_1_DEFAULT</code></td> <td>16777216</td> <td> </td> </tr> <tr> <td><code>BUTTON_POS_2_DEFAULT</code></td> <td>33554432</td> <td> </td> </tr> </tbody>
</table>
<h3>BUTTON_DELAY_ENABLE</h3>
<p><a class=" external" href="http://en.wikipedia.org/wiki/Race_condition" title="http://en.wikipedia.org/wiki/Race_condition"><img align="right" alt="" class="rwrap" src="http://upload.wikimedia.org/wikipedia/commons/7/78/Race_condition.svg"></a>Le drapeau <code>BUTTON_DELAY_ENABLE</code> désactive les boutons. Ils sont activés après un certaine durée. Son interprétation peut varier, puisque son seul intérêt est de s'assurer que l'utilisateur ne ferme pas trop rapidement une boîte de dialogue renseignant sur des informations sensibles (avertissement concernant la sécurité etc.). À proprement parlé, il peut être ignoré.<br>
Un délai peut être utile non seulement pour donner plus de temps de réflexion à l'utilisateur avant d'agir, mais également comme mesure de sécurité contre les sites internet qui créent intentionnellement une <a class=" external" href="http://fr.wikipedia.org/wiki/Situation_de_compétition" title="http://fr.wikipedia.org/wiki/Situation_de_compétition">situation de compétition</a>. Par exemple, un invite de commande affichant un message d'avertissement concernant la sécurité est affiché de manière inattendue et le bouton de validation est actionné involontairement.</p>
<p> </p>
<table class="standard-table"> <tbody> <tr> <td class="header">Constante</td> <td class="header">Valeur</td> <td class="header">Description</td> </tr> <tr> <td><code>BUTTON_DELAY_ENABLE</code></td> <td>67108864</td> <td> </td> </tr> </tbody>
</table>
<h3>Drapeaux de boutons standards</h3>
<table class="standard-table"> <tbody> <tr> <td class="header">Constante</td> <td class="header">Valeur</td> <td class="header">Description</td> </tr> <tr> <td><code>STD_OK_CANCEL_BUTTONS</code></td> <td>513</td> <td> <p> boutons OK/Annuler.</p> <p><code>(BUTTON_TITLE_OK *BUTTON_POS_0) +(BUTTON_TITLE_CANCEL * BUTTON_POS_1)</code></p> </td> </tr> <tr> <td><code>STD_YES_NO_BUTTONS</code></td> <td>1027</td> <td> <p> Boutons Oui/Non.</p> <p><code>(BUTTON_TITLE_YES *BUTTON_POS_0) +(BUTTON_TITLE_NO * BUTTON_POS_1)</code></p> </td> </tr> </tbody>
</table>
<h2 name="Methods">Méthodes</h2>
<h3>alert()</h3>
<p>Affiche une boîte de dialogue avec un bouton de confirmation. Cette méthode est similaire <a href="/fr/DOM/window.alert" title="fr/DOM/window.alert">window.alert()</a>, excepté qu'elle permet de spécifier le titre de la boîte de dialogue. Vous devriez utiliser cette méthode à la place de <code>window.alert</code>.</p>
<pre>void alert(
  in nsIDOMWindow aParent,
  in wstring      aDialogTitle,
  in wstring      aText
);</pre>
<h4>Paramètres</h4>
<dl> <dt><code>aParent</code></dt> <dd>La fenêtre parente de la boîte de dialogue, ou <code>null</code>, dans le cas ou le parent est <code>nsIWindowWatcher.activeWindow</code>.</dd> <dt><code>aDialogTitle</code></dt> <dd>Le titre de la boîte de dialogue.</dd> <dt><code>aText</code></dt> <dd>Le texte de la boîte de dialogue.</dd>
</dl>
<h4>Exemple</h4>
<p>{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n                        .getService(Components.interfaces.nsIPromptService);\n\nprompts.alert(null, \"Title of this Dialog\", \"Hello! You have now been alerted.\");") }}</p>
<p><a href="/@api/deki/files/4072/=AlertExample.png" title="AlertExample.png"><img alt="AlertExample.png" class="internal default" src="/@api/deki/files/4072/=AlertExample.png"></a></p>
<h3>alertCheck()</h3>
<p>Affiche une boîte de dialogue avec un bouton de confirmation et une case à coché accompagnée de son libellé.</p>
<pre>void alertCheck(
  in    nsIDOMWindow aParent,
  in    wstring      aDialogTitle,
  in    wstring      aText,
  in    wstring      aCheckMsg,
  inout boolean      aCheckState
);</pre>
<h4>Paramètres</h4>
<dl> <dt><code>aParent</code></dt> <dd>La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera <code>nsIWindowWatcher.activeWindow</code>.</dd> <dt><code>aDialogTitle</code></dt> <dd>Le titre de la boîte de dialogue.</dd> <dt><code>aText</code></dt> <dd>Le texte de la boîte de dialogue.</dd> <dt><code>aCheckMsg</code></dt> <dd>Le libellé de la case à cocher.</dd> <dt><code>aCheckState</code></dt> <dd>Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).</dd>
</dl>
<h4>Exemple</h4>
<p>{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar check = {value: false}; // case à cocher décochée par défaut\n\nprompts.alertCheck(null, \"Title of this Dialog\", \"Hello! You have now been alerted.\",\n\"And this is a checkbox\", check);\n\n// check.value vaut true si la case est cochée, false sinon") }}</p>
<p><a href="/@api/deki/files/4073/=AlertCheckExample.png" title="/@api/deki/files/4073/=AlertCheckExample.png"><img alt="" class="internal default" src="/@api/deki/files/4073/=AlertCheckExample.png"></a></p>
<h3>confirm()</h3>
<p>Affiche une boîte de dialogue avec un bouton OK et un bouton Annuler.</p>
<pre>boolean confirm(
  in nsIDOMWindow aParent,
  in wstring       aDialogTitle,
  in wstring       aText
);
</pre>
<h4>Paramètres</h4>
<dl> <dt><code>aParent</code></dt> <dd>La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.</dd> <dt><code>aDialogTitle</code></dt> <dd>Le titre de la boîte de dialogue.</dd> <dt><code>aText</code></dt> <dd>Le texte de la boîte de dialogue.</dd>
</dl>
<h4>Valeur retournée</h4>
<p><code>true</code> si le bouton OK est actionné, <code>false</code> si le bouton Annuler est actionné.</p>
<h4>Exemple</h4>
<p>{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar result = prompts.confirm(null, \"Title of this Dialog\", \"Are you sure?\");\n\n// result vaut true si le bouton OK est actionné, false si c'est le bouton Annuler") }}</p>
<h3>confirmCheck()</h3>
<p>Affiche une boîte de dialogue avec un bouton OK et un bouton Annuler ainsi qu'une case à coché accompagnée de son libellé.</p>
<pre>boolean confirmCheck(
  in nsIDOMWindow aParent,
  in wstring aDialogTitle,
  in wstring aText,
  in wstring aCheckMsg,
  inout boolean aCheckState
);
</pre>
<h4>Paramètres</h4>
<dl> <dt><code>aParent</code></dt> <dd>La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.</dd> <dt><code>aDialogTitle</code></dt> <dd>Le titre de la boîte de dialogue.</dd> <dt><code>aText</code></dt> <dd>Le texte de la boîte de dialogue.</dd> <dt><code>aCheckMsg</code></dt> <dd>Le libellé de la case à cocher. Si null, la case à cocher ne sera pas affichée.</dd> <dt><code>aCheckState</code></dt> <dd>Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).</dd>
</dl>
<h4>Valeur retournée</h4>
<p><code style="color: rgb(37, 34, 29); font-weight: inherit; ">true</code> <span id="1276028784195S" style="display: none; "> </span>si le bouton OK est actionné, <code style="color: rgb(37, 34, 29); font-weight: inherit; ">false</code> si le bouton Annuler est actionné.</p>
<h4>Exemple</h4>
<p>{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar check = {value: true}; // case à cocher cochée par défaut\n\nvar result = prompts.confirmCheck(null, \"Title of this Dialog\", \"Are you sure?\",\n\"Don't ask again\", check);\n\n// check.value vaut true si la case à cocher est cochée ET que le bouton OK est actionné, false si le bouton Annuler est actionné.") }}</p>
<h3>confirmEx()</h3>
<p>Ouvre une boîte de dialogue comprenant 3 boutons et éventuellement une case à cocher accompagnée de son libellé.</p>
<p>Les boutons sont numérotés de 0 à 2. L'application peut décider d'afficher ces boutons de gauche à droite  ou de droite à gauche. Le bouton 0 est activé par défaut à moins qu'un drapeau de bouton par défaut ne soit spécifié.</p>
<p>Un bouton peut utiliser un libellé prédéfini, spécifié par l'un des drapeaux de libellé de bouton. Chaque libellé peut être multiplié par un drapeau de position de bouton pour assigner le libellé à un bouton particulier. Lorsque le drapeau <code>BUTTON_TITLE_IS_STRING</code> est utilisé pour un bouton, le paramètre de libellé de ce bouton est utilisé. Si la valeur de la position d'un bouton est à 0, le bouton ne sera pas affiché.</p>
<p>L'exemple suivant créé une boîte de dialogue avec un bouton OK et un bouton avec un libellé personnalisé :</p>
<p><code>{{ syntax.JavaScript("aButtonFlags = (BUTTON_POS_0) * (BUTTON_TITLE_OK) +\n               (BUTTON_POS_1) * (BUTTON_TITLE_IS_STRING) +\n                 BUTTON_POS_1_DEFAULT;") }}<br>
</code></p>
<div class="warning"><code>confirmEx</code> retourne toujours 1 lorsque l'utilisateur ferme la boîte de dialogue en utilisant le bouton de fermeture de la barre de titre ! {{ Bug("345067") }}</div>
<pre>PRInt32 confirmEx(
  in nsIDOMWindow  aParent,
  in wstring aDialogTitle,
  in wstring aText,
  in unsigned long aButtonFlags,
  in wstring aButton0Title,
  in wstring aButton1Title,
  in wstring aButton2Title,
  in wstring aCheckMsg,
  inout boolean aCheckState
);
</pre>
<h4>Paramètres</h4>
<dl> <dt><code>aParent</code></dt> <dd>La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.</dd> <dt><code>aDialogTitle</code></dt> <dd>Le titre de la boîte de dialogue.</dd> <dt><code>aText</code></dt> <dd>Le texte de la boîte de dialogue.</dd> <dt><code>aButtonFlags</code></dt> <dd><code>aButtonFlags</code> est une combinaison de <a href="/fr/nsIPromptService#Constantes" title="https://developer.mozilla.org/fr/nsIPromptService#Constantes">drapeaux de boutons</a>.</dd> <dt><code>aButton0Title</code></dt> <dd>Libellé du bouton 0 si la valeur <code>(BUTTON_TITLE_IS_STRING*BUTTON_TITLE_POS_0)</code> est utilisé pour le paramètre <code>aButtonFlags</code>.</dd> <dt><code>aButton1Title</code></dt> <dd>Libellé du bouton 1 si la valeur <code>(BUTTON_TITLE_IS_STRING*BUTTON_TITLE_POS_1)</code> est utilisé pour le paramètre <code>aButtonFlags</code>.</dd> <dt><code>aButton2Title</code></dt> <dd>Libellé du bouton 2 si la valeur <code>(BUTTON_TITLE_IS_STRING*BUTTON_TITLE_POS_2)</code> est utilisé pour le paramètre <code>aButtonFlags</code>.</dd> <dt><code>aCheckMsg</code></dt> <dd>Le libellé de la case à cocher.</dd> <dt><code>aCheckState</code></dt> <dd>Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).</dd>
</dl>
<h4>Valeur retournée</h4>
<p>L'index du bouton actionné.</p>
<h4>Exemple</h4>
<p>{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar check = {value: false}; // case à cocher décochée par défaut\nvar flags = prompts.BUTTON_POS_0 * prompts.BUTTON_TITLE_SAVE +\nprompts.BUTTON_POS_1 * prompts.BUTTON_TITLE_IS_STRING +\nprompts.BUTTON_POS_2 * prompts.BUTTON_TITLE_CANCEL;\n// Ces drapeaux créent 3 boutons. Le premier est un bouton \"Save\", le\n// second la valeur de aButtonTitle1, et le troisième un bouton \"Cancel\"\n\nvar button = prompts.confirmEx(null, \"Title of this Dialog\", \"What do you want to do?\",\nflags, \"\", \"Button 1\", \"\", null, check);\n\n// La case à cocher est cachée et button contient l'index du bouton acctionné,\n// 0, 1, ou 2.") }}</p>
<p><a href="/@api/deki/files/4075/=confirmExExample.png" title="/@api/deki/files/4075/=confirmExExample.png"><img alt="" class="internal default" src="/@api/deki/files/4075/=confirmExExample.png"></a></p>
<h3>prompt()</h3>
<p><code><span style="font-family: Verdana,Tahoma,sans-serif;">Ouvre une boîte de dialogue contenant un champ texte et éventuellement une case à cochée accompagnée de son libellé.</span></code></p>
<pre>boolean prompt(
  in nsIDOMWindow aParent,
  in wstring aDialogTitle,
  in wstring aText,
  inout wstring aValue,
  in wstring aCheckMsg,
  inout boolean aCheckState
);
</pre>
<h4>Paramètres</h4>
<dl> <dt><code>aParent</code></dt> <dd>La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.</dd> <dt><code>aDialogTitle</code></dt> <dd>Le titre de la boîte de dialogue.</dd> <dt><code>aText</code></dt> <dd>Le texte de la boîte de dialogue.</dd> <dt><code>aValue</code></dt> <dd>Contient la valeur par défaut du champ texte lors de l'appel de la méthode (la valeur <code>null</code> peut être utilisée pour un champ vide). Lorsque la méthode retourne le résultat, si l'utilisateur a actionné le bouton OK, ce paramètre contient la nouvelle valeur. Sinon, la valeur n'est pas modifiée. Si vous appelez cette méthode en JavaScript, vous devez englober cet argument dans un objet dont l'attribut value est une chaîne de caractère (ou utiliser un objet vide).</dd> <dt><code>aCheckMsg</code></dt> <dd>Le libellé de la case à cocher. Si null, la case à cocher ne sera pas affichée.</dd> <dt><code>aCheckState</code></dt> <dd>Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).</dd>
</dl>
<h4>Valeur retournée</h4>
<p><code style="color: rgb(37, 34, 29); font-weight: inherit; ">true</code> si le bouton OK est actionné, <code style="color: rgb(37, 34, 29); font-weight: inherit; ">false</code> si le bouton Annuler est actionné.</p>
<h4>Exemple</h4>
<p>{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar check = {value: false}; // case à cocher décochée par défaut\nvar input = {value: \"Bob\"}; // valeur par défaut du champ texte à \"Bob\"\n\nvar result = prompts.prompt(null, \"Title\", \"What is your name?\", input, null, check);\n\n// result vaut true si le bouton OK est actionné, false si c'est le bouton Cancel. input.value content la valeur du champ texte si le bouton OKest actionné.") }}</p>
<h3>promptUsernameAndPassword()</h3>
<p>Ouvre une boîte dialogue contenant un champ texte, un champ de mot de passe et éventuellement une case à cocher accompagnée de son libellé.</p>
<pre>boolean promptUsernameAndPassword(
  in nsIDOMWindow aParent,
  in wstring aDialogTitle,
  in wstring aText,
  inout wstring aUsername,
  inout wstring aPassword,
  in wstring aCheckMsg,
  inout boolean aCheckState
);
</pre>
<h4>Paramètres</h4>
<dl> <dt><code>aParent</code></dt> <dd>La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.</dd> <dt><code>aDialogTitle</code></dt> <dd>Le titre de la boîte de dialogue.</dd> <dt><code>aText</code></dt> <dd>Le texte de la boîte de dialogue.</dd> <dt><code>aUsername</code></dt> <dd>Nom d'utilisateur par défaut (valeur nulle acceptée). Si l'utilisateur a fermé la fenêtre en actionnant le bouton OK, ce paramètre contient la nouvelle valeur saisie. Sinon, la valeur n'est pas modifiée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).</dd> <dt><code>aPassword</code></dt> <dd>Mot de passe par défaut (valeur nulle acceptée). Si l'utilisateur a fermé la fenêtre en actionnant le bouton OK, ce paramètre contient la nouvelle valeur saisie. Sinon, la valeur n'est pas modifiée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).</dd> <dt> </dt><dt style="font-style: normal; font-weight: bold; "><code style="color: rgb(37, 34, 29); font-weight: inherit; ">aCheckMsg</code></dt> <dd style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 15px; ">Le libellé de la case à cocher. Si null, la case à cocher ne sera pas affichée.</dd> <dt style="font-style: normal; font-weight: bold; "><code style="color: rgb(37, 34, 29); font-weight: inherit; ">aCheckState</code></dt> <dd style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 15px; ">Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).</dd> <dt>
</dt></dl>
<h4>Valeur retournée</h4>
<p><code style="color: rgb(37, 34, 29); font-weight: inherit; ">true</code> si le bouton OK est actionné, <code style="color: rgb(37, 34, 29); font-weight: inherit; ">false</code> si le bouton Annuler est actionné.</p><h4>Exemple</h4>
<p>{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar username = {value: \"user\"}; // nom d'utilisateur par défaut\n\nvar password = {value: \"pass\"}; // mot de passe par défaut\n\nvar check = {value: true}; // case à cocher cochée par défaut\n\nvar result = prompts.promptUsernameAndPassword(null, \"Title\", \"Enter username and password:\",\nusername, password, \"Save\", check);\n\n// result vaut true si le bouton OK est actionné, false si c'est le bouton Cancel.\n// username.value, password.value, et check.value contiennent les nouvelles valeurs saisies si le bouton OK est actionné.") }}</p>
<p><img alt="" class="internal" src="/@api/deki/files/4076/=promptUsernameAndPasswordExample.png" style="width: 365px; height: 200px; "></p><h3>promptPassword()</h3>
<p><code><span style="font-family: Verdana,Tahoma,sans-serif;">Ouvre une boîte de dialogue contenant un champ mot de passe et éventuellement une case à cocher accompagnée de son libellé.</span></code></p>
<pre>boolean promptPassword(
  in nsIDOMWindow aParent,
  in wstring aDialogTitle,
  in wstring aText,
  inout wstring aPassword,
  in wstring aCheckMsg,
  inout boolean aCheckState
);</pre>
<h4>Paramètres</h4>
<dl> <dt><code>aParent</code></dt> <dd>La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.</dd> <dt><code>aDialogTitle</code></dt> <dd>Le titre de la boîte de dialogue.</dd> <dt><code>aText</code></dt> <dd>Le texte de la boîte de dialogue.</dd> <dt><code>aPassword</code></dt> <dd>Mot de passe par défaut (valeur nulle acceptée). Si l'utilisateur a fermé la fenêtre en actionnant le bouton OK, ce paramètre contient la nouvelle valeur saisie. Sinon, la valeur n'est pas modifiée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).</dd> <dt><code>aCheckMsg</code></dt> <dd>Le libellé de la case à cocher. Si null, la case à cocher ne sera pas affichée.</dd> <dt><code>aCheckState</code></dt> <dd>Contient l'état initial de la case à cocher, puis son état final une fois la boîte de dialogue fermée. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).</dd>
</dl>
<h4>Valeur retournée</h4>
<p>true si le bouton OK est actionné, false si le bouton Annuler est actionné.</p>
<h4>Exemple</h4>
<div id="section_42">
<p>{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar password = {value: \"pass\"}; // mot de passe par défaut\n\nvar check = {value: true}; // case à cocher cochée par défaut\n\nvar result = prompts.promptPassword(null, \"Title\", \"Enter password:\", password, null, check);\n\n// result vaut true si le bouton OK est actionné, false si c'est le bouton Cancel.\n// password.value contient la nouvelle valeur saisie si le bouton OK est actionné<span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 14px; font-size: 12px; "><span class="comment" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; color: rgb(0, 130, 0); background-color: inherit; ">. }}</span></span></span> La case à cocher n'est pas affichée. ") </span></p>
<p> </p>
</div>
<h3>select()</h3>
<p>Ouvre une boîte de dialogue contenant une liste de chaîne de caractères. L'utilisateur ne peut en sélectionner qu'une seule.</p>
<pre>boolean select(
  in  nsIDOMWindow aParent,
  in  wstring       aDialogTitle,
  in  wstring       aText,
  in  PRUint32     aCount,
  [array, size_is(aCount)] in wstring aSelectList,
  out long         aOutSelection
);
</pre>
<h4>Paramètres</h4>
<dl> <dt><code>aParent</code></dt> <dd>La fenêtre parente de la boîte de dialogue. Si null, la fenêtre parente sera nsIWindowWatcher.activeWindow.</dd> <dt><code>aDialogTitle</code></dt> <dd>Le titre de la boîte de dialogue.</dd> <dt><code>aText</code></dt> <dd>Le texte de la boîte de dialogue.</dd> <dt><code>aCount</code></dt> <dd>Taille du tableau <code>aSelectList</code>.</dd> <dt><code>aSelectList</code></dt> <dd>Liste de chaînes de caractères.</dd> <dt><code>aOutSelection</code></dt> <dd>Contient l'index de l'élément sélectionné dans la liste lorsque le bouton OK est actionné. Si vous utilisez cette méthode en Javascript, vous devez englober cet argument dans un objet dont la propriété value est un booléen spécifiant l'état initial (ou utiliser un objet vide).</dd>
</dl>
<h4>Valeur retournée</h4>
<p><code>true</code> si le bouton OK est actionné, <code>false</code> si le bouton Annuler est actionné.</p>
<h4>Exemple</h4>
<p>{{ syntax.JavaScript("var prompts = Components.classes[\"@mozilla.org/embedcomp/prompt-service;1\"]\n.getService(Components.interfaces.nsIPromptService);\n\nvar items = [\"Hello\", \"Welcome\", \"Howdy\", \"Hi\", \":)\"]; // liste d'éléments\n\nvar selected = {};\n\nvar result = prompts.select(null, \"Title\", \"What greeting do you want?\", items.length, items, selected);\n\n// result vaut true si le bouton OK est actionné, false si c'est le bouton Cancel.\n\n// selected contient l'index de l'élément sélectionné. Accédez à cet élément avec selected items[selected.value].") }}</p>
<p><a href="/@api/deki/files/4074/=selectExample.png"><img alt="selectExample.png" class="internal default" src="/@api/deki/files/4074/=selectExample.png"></a></p><h2>Example code</h2>
<h3>promptPassword example</h3>
<p>{{ Anch("promptPassword") }} displays a dialog with a password field and an optional checkbox.</p>
<pre>var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                        .getService(Components.interfaces.nsIPromptService);

var password = {value: "pass"};              // default the password to pass

var check = {value: true};                   // default the checkbox to true

var result = prompts.promptPassword(null, "Title", "Enter password:", password, null, check);

// result is true if OK was pressed, false if cancel was pressed. password.value is
// set if OK was pressed. The checkbox is not displayed.
</pre>
<h3>select example</h3>
<p>{{ Anch("select") }} displays a dialog with a listbox of choices.</p>
<p><img alt="" class="internal" src="/@api/deki/files/4074/=selectExample.png" style="width: 333px; height: 196px; "></p>
<pre>var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                        .getService(Components.interfaces.nsIPromptService);

var items = ["Hello", "Welcome", "Howdy", "Hi", ":)"]; // list items

var selected = {};

var result = prompts.select(null, "Title", "What greeting do you want?", items.length,
                            items, selected);

// result is true if OK was pressed, false if cancel. selected is the index of the item array
// that was selected. Get the item using items[selected.value].
</pre><h2 name="See_also">See also</h2>
<ul> <li>{{ Interface("nsIPrompt") }}</li> <li><a href="/en/Working_with_out_parameters" title="en/Working with out parameters">Working with out parameters</a></li> <li><a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIPromptService.html">Description de nsIPromptService</a> (XUL Planet)</li> <li><a class="external" href="http://kb.mozillazine.org/Prompt_service">Quelques exemples</a> (MozillaZine)</li>
</ul>
<p> </p>
<p>{{ languages( { "en": "en/nsIPromptService", "fr": "fr/nsIPromptService" } ) }}</p>
Revenir à cette révision