--- title: window.openDialog slug: Web/API/Window/openDialog tags: - DOM - Gecko - Window - boîte de dialogue translation_of: Web/API/Window/openDialog ---

{{ ApiRef() }}

Résumé

window.openDialog est une extension à window.open(). Elle s'utilise de la même manière, excepté qu'elle peut prendre plusieurs paramètres optionnels après windowFeatures, et que windowFeatures est traîté différemment.

Les paramètres optionnels, si présents, seront regroupés dans un objet JavaScript Array et seront accessibles depuis la nouvelle fenêtre par la propriété window.arguments. Ils sont accessibles depuis les scripts de la fenêtre à tout moment, notamment lors du traitement d'un évênement load . Ces paramètres peuvent donc être utilisés pour passer des arguments à une boîte de dialogue, et pour les récupérer ensuite.

Notez que l'appel à la méthode openDialog() se termine immédiatement. Si vous souhaitez le bloquer jusqu'à ce que l'utilisateur ferme la boîte de dialogue, utilisez la valeur modal pour le paramètre features. En conséquence, l'utilisateur ne pourra pas interagir avec la fenêtre parente jusqu'à ce qu'il ferme la boîte de dialogue modale.

Syntaxe

newWindow = openDialog(url, name, features, arg1, arg2, ...)
newWindow 
La nouvelle fenêtre ouverte.
url 
L'URL du document à charger dans la nouvelle fenêtre.
name 
Le nom de la fenêtre (optionnel). Voir la description de window.open() pour plus de détails.
features 
Voir la description de window.open() pour la description.
arg1, arg2, ... 
Les arguments à passer à la nouvelle fenêtre (optionnel).

Exemple

var win = openDialog("http://example.tld/zzz.xul", "dlg", "", "pizza", 6.98);

Notes

Nouvelles fonctionnalités

all
Active ou désactive ("all=no") toutes les fonctionnalités (excepté chrome, dialog et modal). Peut être utilisé conjointement avec les autres drapeaux (par exemple, "menubar=no, all" active toutes les fonctionnalités excepté menubar). Ce drapeau est ignorée par la méthode window.open() mais pas par window.openDialog().

Comportement

La méthode window.openDialog() traite l'absence du paramètre features de la même manière que window.open() (une chaîne vide désactive toutes les fonctionnalités) excepté pour chrome et dialog qui sont activés par défaut et peuvent être explicitement désactivées par "chrome=no".

Passage de paramètres supplémentaires

Pour passer des paramètres supplémentaires à la boîte de dialogue, vous pouvez simplement les ajouter après le paramètre features :

openDialog("http://example.tld/zzz.xul", "dlg", "", "pizza", 6.98);

Ces paramètres seront ensuite regroupés dans une propriété arguments de type Array, et cette propriété sera ajoutée à la nouvelle boîte de dialogue.

Pour accéder à ces paramètres depuis un script de la boîte de dialogue, utilisez le procédé suivant :

var food = window.arguments[0];
var price = window.arguments[1];

Notez que vous pouvez accéder à cette propriété depuis n'importe où dans le script. (Autre exemple).

Retourner des arguments depuis la boîte de dialogue

Depuis que window.close() efface toutes les propriétés associées à la boîte de dialogue (c'est-à-dire les variables spécifiées depuis le code JavaScript chargé depuis la boîte de dialogue), il n'est pas possible de retourner des valeur après la fermeture de la boîte de dialogue en utilisant des variables globales (ou toute autre méthode).

Pour pouvoir retourner des valeurs à la fenêtre parente, vous devez passer un objet via les paramètres supplémentaires. Vous pouvez ensuite accéder à cet objet depuis la boîte de dialogue et modifier ces propriétés, dont les données que vous souhaiter conserver après l'appel à la méthode window.close().

var retVals = { address: null, delivery: null };
openDialog("http://example.tld/zzz.xul", "dlg", "modal", "pizza", 6.98, retVals);

Si vous modifiez les propriétés de l'objet retVals depuis la boîte de dialogue comme décrit précédemment, vous pouvez y accéder via le tableau retVals après l'appel à openDialog().

Depuis la boîte de dialogue, vous pouvez modifier les propriétés comme suit :

var retVals = window.arguments[2];
retVals.address = enteredAddress;
retVals.delivery = "immediate";

Voir aussi ce message. (Autre exemple).
Voir aussi window.importDialog().

Spécification

{{ DOM0() }}

Compatibilité des navigateurs

{{Compat("api.Window.openDialog")}}

Voir également