Office.Dialog interface

Objet retourné quand UI.displayDialogAsync est appelé. Il expose des méthodes pour inscrire des gestionnaires d’événements et fermer la boîte de dialogue.

Remarques

Ensemble de conditions requises : DialogAPI

Méthodes

addEventHandler(eventType, handler)

Enregistre un gestionnaire d’événements. Les deux événements suivants sont pris en charge :

  • DialogMessageReceived. Déclenché lorsque la boîte de dialogue envoie un message à son parent.

  • DialogEventReceived. Déclenché lorsque la boîte de dialogue a été fermée ou lorsque son chargement a été annulé.

close()

Appelé à partir d’une page parent pour fermer la boîte de dialogue correspondante.

Cette méthode est asynchrone. Il ne prend pas de paramètre de rappel et ne retourne pas d’objet Promise. Il ne peut donc pas être attendu avec le await mot clé ou la then fonction. Consultez cette bonne pratique pour plus d’informations : Ouverture d’une autre boîte de dialogue immédiatement après la fermeture d’une boîte de dialogue

messageChild(message, messageOptions)

Remet un message de la page hôte, tel qu’un volet Office ou un fichier de fonction sans interface utilisateur, à une boîte de dialogue qui a été ouverte à partir de la page.

sendMessage(name)

À USAGE INTERNE UNIQUEMENT. N’APPELEZ PAS DANS VOTRE CODE.

Détails de la méthode

addEventHandler(eventType, handler)

Enregistre un gestionnaire d’événements. Les deux événements suivants sont pris en charge :

  • DialogMessageReceived. Déclenché lorsque la boîte de dialogue envoie un message à son parent.

  • DialogEventReceived. Déclenché lorsque la boîte de dialogue a été fermée ou lorsque son chargement a été annulé.

addEventHandler(eventType: Office.EventType, handler: (args: {message: string, origin: string | undefined} | {error: number}) => void): void;

Paramètres

eventType
Office.EventType

Doit être DialogMessageReceived ou DialogEventReceived.

handler

(args: {message: string, origin: string | undefined} | {error: number}) => void

Fonction qui accepte un objet avec une message propriété et origin , si eventType estDialogMessageReceived , ou un objet avec une error propriété, si eventType est DialogEventReceived. Notez que la propriété se trouve undefined sur les origin clients qui ne prennent pas en charge DialogOrigin 1.1.

Retours

void

Exemples

// The following example shows how to open a dialog with a specified size. It also shows
// how to register a function to handle the message when Office.UI.messageParent() is called
// in the dialog and how to use that handler to close the dialog. The implementation of the processMessage() function is omitted.

Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
    (asyncResult) => {
        const dialog = asyncResult.value;
        dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg) => {
            dialog.close();
            processMessage(arg);
        });
    }
);

// The following example does the same thing in TypeScript.

Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
    (asyncResult: Office.AsyncResult) => {
        const dialog: Office.Dialog = asyncResult.value;
        dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg: string) => {
            dialog.close();
            processMessage(arg);
        });
    }
);

close()

Appelé à partir d’une page parent pour fermer la boîte de dialogue correspondante.

Cette méthode est asynchrone. Il ne prend pas de paramètre de rappel et ne retourne pas d’objet Promise. Il ne peut donc pas être attendu avec le await mot clé ou la then fonction. Consultez cette bonne pratique pour plus d’informations : Ouverture d’une autre boîte de dialogue immédiatement après la fermeture d’une boîte de dialogue

close(): void;

Retours

void

Exemples

// The following example shows how to open a dialog with a specified size. It also shows
// how to register a function to handle the message when Office.UI.messageParent() is called
// in the dialog and how to use that handler to close the dialog. The implementation of the processMessage() function is omitted.

Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
    (asyncResult) => {
        const dialog = asyncResult.value;
        dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg) => {
            dialog.close();
            processMessage(arg);
        });
    }
);

// The following example does the same thing in TypeScript.

Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
    (asyncResult: Office.AsyncResult) => {
        const dialog: Office.Dialog = asyncResult.value;
        dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg: string) => {
            dialog.close();
            processMessage(arg);
        });
    }
);

messageChild(message, messageOptions)

Remet un message de la page hôte, tel qu’un volet Office ou un fichier de fonction sans interface utilisateur, à une boîte de dialogue qui a été ouverte à partir de la page.

messageChild(message: string, messageOptions?: DialogMessageOptions): void;

Paramètres

message

string

Accepte un message de la page hôte à remettre au dialogue. Tout ce qui peut être sérialisé dans une chaîne, y compris JSON et XML, peut être envoyé.

messageOptions
Office.DialogMessageOptions

Optional. Fournit des options permettant d’envoyer le message.

Retours

void

Remarques

Applications : Excel, Outlook (ensemble de conditions minimales : Boîte aux lettres 1.9), PowerPoint, Word

Ensembles de conditions requises :

Bien qu’Outlook classique sur Mac ne prend pas en charge mailbox 1.9, il prend en charge DialogApi 1.2.

Exemples

// The following example shows how to send information about the current active worksheet to the dialog.
await Excel.run(async (context) => {
    const worksheet = context.workbook.worksheets.getActiveWorksheet();
    worksheet.load();
    await context.sync();
    worksheetPropertiesChanged(worksheet);
});

...

function worksheetPropertiesChanged(currentWorksheet) {
    const messageToDialog = JSON.stringify(currentWorksheet);
    dialog.messageChild(messageToDialog);
}

sendMessage(name)

À USAGE INTERNE UNIQUEMENT. N’APPELEZ PAS DANS VOTRE CODE.

sendMessage(name: string): void;

Paramètres

name

string

Retours

void