Office.Dialog interface
Объект , возвращаемый при UI.displayDialogAsync
вызове. Он предоставляет методы для регистрации обработчиков событий и закрытия диалогового окна.
Комментарии
Набор обязательных элементов: DialogAPI
Методы
add |
Регистрирует обработчик событий. Ниже приведены два поддерживаемых события.
|
close() | Вызывается с родительской страницы, чтобы закрыть соответствующее диалоговое окно. Этот метод является асинхронным. Он не принимает параметр обратного вызова и не возвращает объект Promise, поэтому его нельзя ожидать с |
message |
Доставляет сообщение с главной страницы, например из области задач или файла функции без пользовательского интерфейса, в диалоговое окно, открытое на странице. |
send |
ТОЛЬКО ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ. НЕ ВЫЗЫВАЙТЕ В КОДЕ. |
Сведения о методе
addEventHandler(eventType, handler)
Регистрирует обработчик событий. Ниже приведены два поддерживаемых события.
DialogMessageReceived. Триггер — отправка сообщения из диалогового окна родительской странице.
DialogEventReceived. Триггер — закрытие диалогового окна или его выгрузка иным способом.
addEventHandler(eventType: Office.EventType, handler: (args: {message: string, origin: string | undefined} | {error: number}) => void): void;
Параметры
- eventType
- Office.EventType
Должен иметь значение DialogMessageReceived или DialogEventReceived.
- handler
-
(args: {message: string, origin: string | undefined} | {error: number}) => void
Функция, которая принимает либо объект со свойством и , если eventType
имеет значение DialogMessageReceived
, либо объект со свойством error
, если eventType
имеет значение DialogEventReceived
.origin
message
Обратите внимание, что origin
свойство находится undefined
на клиентах, которые не поддерживают DialogOrigin 1.1.
Возвращаемое значение
void
Примеры
// 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()
Вызывается с родительской страницы, чтобы закрыть соответствующее диалоговое окно.
Этот метод является асинхронным. Он не принимает параметр обратного вызова и не возвращает объект Promise, поэтому его нельзя ожидать с await
помощью ключевое слово или then
функции. Дополнительные сведения см. в статье Открытие другого диалогового окна сразу после закрытия
close(): void;
Возвращаемое значение
void
Примеры
// 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)
Доставляет сообщение с главной страницы, например из области задач или файла функции без пользовательского интерфейса, в диалоговое окно, открытое на странице.
messageChild(message: string, messageOptions?: DialogMessageOptions): void;
Параметры
- message
-
string
Принимает сообщение с главной страницы для доставки в диалоговое окно. Все, что можно сериализовать в строку, включая JSON и XML, можно отправить.
- messageOptions
- Office.DialogMessageOptions
Необязательный параметр. Предоставляет параметры отправки сообщения.
Возвращаемое значение
void
Комментарии
Приложения: Excel, Outlook (минимальный набор требований: Почтовый ящик 1.9), PowerPoint, Word
Наборы обязательных элементов:
messageOptions
Если используется параметр, также требуется DialogOrigin 1.1.
Хотя классический Outlook на Mac не поддерживает почтовый ящик 1.9, он поддерживает DialogApi 1.2.
Примеры
// 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)
ТОЛЬКО ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ. НЕ ВЫЗЫВАЙТЕ В КОДЕ.
sendMessage(name: string): void;
Параметры
- name
-
string
Возвращаемое значение
void
Office Add-ins