Freigeben über


Office.Dialog interface

Das Objekt, das zurückgegeben wird, wenn UI.displayDialogAsync aufgerufen wird. Es macht Methoden zum Registrieren von Ereignishandlern und Zum Schließen des Dialogs verfügbar.

Hinweise

Anforderungssatz: DialogAPI

Methoden

addEventHandler(eventType, handler)

Registriert einen Ereignishandler. Die beiden unterstützten Ereignisse sind:

  • DialogMessageReceived. Wird ausgelöst, wenn das Dialogfeld eine Nachricht an das übergeordnete Element sendet.

  • DialogEventReceived. Wird ausgelöst, wenn das Dialogfeld geschlossen oder anderweitig entladen wurde.

close()

Wird von einer übergeordneten Seite aufgerufen, um das entsprechende Dialogfeld zu schließen.

Diese Methode ist asynchron. Er nimmt keinen Rückrufparameter und gibt kein Promise-Objekt zurück, sodass es weder mit dem await Schlüsselwort (keyword) noch mit der then Funktion erwartet werden kann. Weitere Informationen finden Sie in dieser bewährten Methode: Öffnen eines weiteren Dialogfelds unmittelbar nach dem Schließen eines Dialogfelds

messageChild(message, messageOptions)

Übermittelt eine Nachricht von der Hostseite, z. B. einen Aufgabenbereich oder eine Funktionsdatei ohne Benutzeroberfläche, an ein Dialogfeld, das von der Seite aus geöffnet wurde.

sendMessage(name)

NUR ZUR INTERNEN VERWENDUNG. RUFEN SIE NICHT IN IHREM CODE AUF.

Details zur Methode

addEventHandler(eventType, handler)

Registriert einen Ereignishandler. Die beiden unterstützten Ereignisse sind:

  • DialogMessageReceived. Wird ausgelöst, wenn das Dialogfeld eine Nachricht an das übergeordnete Element sendet.

  • DialogEventReceived. Wird ausgelöst, wenn das Dialogfeld geschlossen oder anderweitig entladen wurde.

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

Parameter

eventType
Office.EventType

Muss entweder DialogMessageReceived oder DialogEventReceived sein.

handler

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

Eine Funktion, die entweder ein -Objekt mit einer - und -messageEigenschaft akzeptiert, wenn eventType istDialogMessageReceived, oder ein Objekt mit einer error -Eigenschaft, wenn eventType istDialogEventReceived.origin Beachten Sie, dass sich die origin Eigenschaft auf Clients befindet undefined , die DialogOrigin 1.1 nicht unterstützen.

Gibt zurück

void

Beispiele

// 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()

Wird von einer übergeordneten Seite aufgerufen, um das entsprechende Dialogfeld zu schließen.

Diese Methode ist asynchron. Er nimmt keinen Rückrufparameter und gibt kein Promise-Objekt zurück, sodass es weder mit dem await Schlüsselwort (keyword) noch mit der then Funktion erwartet werden kann. Weitere Informationen finden Sie in dieser bewährten Methode: Öffnen eines weiteren Dialogfelds unmittelbar nach dem Schließen eines Dialogfelds

close(): void;

Gibt zurück

void

Beispiele

// 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)

Übermittelt eine Nachricht von der Hostseite, z. B. einen Aufgabenbereich oder eine Funktionsdatei ohne Benutzeroberfläche, an ein Dialogfeld, das von der Seite aus geöffnet wurde.

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

Parameter

message

string

Akzeptiert eine Nachricht von der Hostseite, die an das Dialogfeld übermittelt werden soll. Alles, was in eine Zeichenfolge serialisiert werden kann, einschließlich JSON und XML, kann gesendet werden.

messageOptions
Office.DialogMessageOptions

Optional. Stellt Optionen zum Senden der Nachricht bereit.

Gibt zurück

void

Hinweise

Anwendungen: Excel, Outlook (Mindestanforderungssatz: Postfach 1.9), PowerPoint, Word

Anforderungssätze:

Obwohl das klassische Outlook für Mac Postfach 1.9 nicht unterstützt, unterstützt es DialogApi 1.2.

Beispiele

// 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)

NUR ZUR INTERNEN VERWENDUNG. RUFEN SIE NICHT IN IHREM CODE AUF.

sendMessage(name: string): void;

Parameter

name

string

Gibt zurück

void