Office.UI interface
Предоставляет объекты и методы, которые можно использовать для создания компонентов пользовательского интерфейса, таких как диалоговые окна, и управления ими в надстройках Office.
Дополнительные сведения см. в разделе Использование API диалогового окна в надстройках Office.
Комментарии
Примеры
// Get an Office.UI object and use it to open a dialog with a specified size.
const uiContext = Office.context.ui;
uiContext.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 });
Методы
add |
Добавляет обработчик событий в объект с использованием указанного типа события. |
add |
Добавляет обработчик событий в объект с использованием указанного типа события. |
close |
Закрывает контейнер пользовательского интерфейса, в котором выполняется код JavaScript. |
display |
Отображает диалоговое окно для отображения или сбора сведений от пользователя или для упрощения веб-навигации. |
display |
Отображает диалоговое окно для отображения или сбора сведений от пользователя или для упрощения веб-навигации. |
message |
Доставляет сообщение из диалогового окна родительской странице. |
open |
Открывает окно браузера и загружает указанный URL-адрес. |
Сведения о методе
addHandlerAsync(eventType, handler, options, callback)
Добавляет обработчик событий в объект с использованием указанного типа события.
addHandlerAsync(eventType: Office.EventType, handler: (result: DialogParentMessageReceivedEventArgs) => void, options: Office.AsyncContextOptions, callback?: (result: AsyncResult<void>) => void): void;
Параметры
- eventType
- Office.EventType
Указывает тип добавляемого события. Это должно быть Office.EventType.DialogParentMessageReceived
.
- handler
-
(result: Office.DialogParentMessageReceivedEventArgs) => void
Добавляемая функция обработчика событий, единственный параметр которой имеет тип Office.DialogParentMessageReceivedEventArgs.
- options
- Office.AsyncContextOptions
Предоставляет возможность сохранения данных контекста любого типа без изменений для использования в обратном вызове.
- callback
-
(result: Office.AsyncResult<void>) => void
Необязательный параметр. Функция, вызываемая при возврате регистрации обработчика, единственный параметр которой имеет тип Office.AsyncResult.
Возвращаемое значение
void
Комментарии
Набор обязательных элементов: DialogAPI 1.2
Для указанного типа события можно добавить несколько обработчиков событий, если имя каждой функции обработчика событий уникально.
addHandlerAsync(eventType, handler, callback)
Добавляет обработчик событий в объект с использованием указанного типа события.
addHandlerAsync(eventType: Office.EventType, handler: (result: DialogParentMessageReceivedEventArgs) => void, callback?: (result: AsyncResult<void>) => void): void;
Параметры
- eventType
- Office.EventType
Указывает тип добавляемого события. Это должно быть Office.EventType.DialogParentMessageReceived
.
- handler
-
(result: Office.DialogParentMessageReceivedEventArgs) => void
Добавляемая функция обработчика событий, единственный параметр которой имеет тип Office.DialogParentMessageReceivedEventArgs.
- callback
-
(result: Office.AsyncResult<void>) => void
Необязательный параметр. Функция, вызываемая при возврате регистрации обработчика, единственный параметр которой имеет тип Office.AsyncResult.
Возвращаемое значение
void
Комментарии
Набор обязательных элементов: DialogAPI 1.2
Для указанного типа события можно добавить несколько обработчиков событий, если имя каждой функции обработчика событий уникально.
Примеры
// The following example shows how to add an event handler for the DialogParentMessageReceived event.
Office.onReady(() => {
Office.context.ui.addHandlerAsync(
Office.EventType.DialogParentMessageReceived,
onMessageFromParent,
onRegisterMessageComplete
);
});
function onMessageFromParent(arg) {
const messageFromParent = JSON.parse(arg.message);
document.querySelector('h1').textContent = messageFromParent.name;
}
function onRegisterMessageComplete(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
}
closeContainer()
Закрывает контейнер пользовательского интерфейса, в котором выполняется код JavaScript.
closeContainer(): void;
Возвращаемое значение
void
Комментарии
Приложения: Excel, Outlook (минимальный набор требований: Почтовый ящик 1.5), PowerPoint, Word
Наборы обязательных элементов:
Поведение этого метода определяется следующим образом:
Вызывается из кнопки команды без пользовательского интерфейса: нет эффекта. Все диалоговые окна, открытые с помощью метода displayDialogAsync, останутся открытыми.
Вызывается из области задач: область задач закроется. Любое диалоговое окно, открытое с помощью displayDialogAsync, также закроется. Если область задач поддерживает закрепление и была закреплена пользователем, она будет незакреплена.
Вызывается из расширения модуля: нет эффекта.
Примеры
// The following example shows how to open a browser window to a download page and then close the add-in task pane.
Office.context.ui.openBrowserWindow("https://www.contoso.com/download");
Office.context.ui.closeContainer();
displayDialogAsync(startAddress, options, callback)
Отображает диалоговое окно для отображения или сбора сведений от пользователя или для упрощения веб-навигации.
displayDialogAsync(startAddress: string, options?: DialogOptions, callback?: (result: AsyncResult<Dialog>) => void): void;
Параметры
- startAddress
-
string
Принимает начальный полный URL-адрес HTTPS, который открывается в диалоговом окне. Относительные URL-адреса не должны использоваться.
- options
- Office.DialogOptions
Необязательный параметр. Принимает объект Office.DialogOptions для определения отображения диалогового окна.
- callback
-
(result: Office.AsyncResult<Office.Dialog>) => void
Необязательный параметр. Принимает функцию обратного вызова для обработки попытки создания диалога. В случае успешного выполнения AsyncResult.value является объектом Dialog.
Возвращаемое значение
void
Комментарии
Приложения: Excel, Outlook, PowerPoint, Word
Наборы обязательных элементов:
Этот метод доступен в наборе обязательных элементов DialogApi для надстроек Excel, PowerPoint или Word, а также в наборе требований почтового ящика 1.4 для Outlook. Дополнительные сведения о том, как указать набор требований в манифесте, см. в разделе Указание приложений Office и требований к API, если вы используете только манифест надстройки. Если вы используете унифицированный манифест для Microsoft 365, см. статью Надстройки Office с манифестом унифицированного приложения для Microsoft 365.
Начальная страница должна находиться в том же домене, что и родительская страница (параметр startAddress). После загрузки начальной страницы можно перейти к другим доменам.
Все вызовы Office.context.ui.messageParent
страницы также должны находиться в том же домене, что и родительская страница.
Рекомендации по проектированию:
Следующие рекомендации по проектированию относятся к диалоговым окнам.
Область задач надстройки Office может в любой момент открыть только одно диалоговое окно. Из команд надстроек (настраиваемые кнопки ленты или пункты меню) можно открыть одновременно несколько диалогов.
Пользователь может перемещать все диалоговые окна и изменять их размер.
При открытии все диалоговые окна размещаются по центру экрана.
Диалоговые окна отображаются поверх приложения в том порядке, в котором они были созданы.
Примеры применения диалогового окна:
Отображение страниц проверки подлинности для сбора учетных данных пользователей.
Отображение экрана ошибки, хода выполнения и ввода из команды ShowTaskpane или ExecuteAction.
Временное увеличение пространства, доступного пользователю для выполнения задачи.
Не используйте диалоговое окно для работы с документом. Используйте область задач.
DisplayDialogAsync Errors
Цифровой код | Значение |
---|---|
12004 | Домен URL-адреса, переданного в displayDialogAsync, не является доверенным. Домен должен совпадать с главной страницей (включая протокол и номер порта) или должен быть зарегистрирован в разделе AppDomains манифеста надстройки. |
12005 | URL-адрес, передаваемый в displayDialogAsync, использует протокол HTTP. Необходим протокол HTTPS. (В некоторых версиях Office сообщение об ошибке 12005 совпадает с сообщением 12004.) |
12007 | Диалоговое окно уже открыто из области задач. Надстройка области задач не может открывать сразу несколько диалоговых окон. |
12009 | Пользователь проигнорировал диалоговое окно. Эта ошибка может возникнуть в веб-версиях Office, где пользователи могут не разрешить надстройке открыть диалоговое окно. |
В функции обратного вызова, переданной методу displayDialogAsync, можно использовать свойства объекта AsyncResult, чтобы вернуть следующие сведения.
Property | Использовать |
---|---|
AsyncResult.value | Доступ к объекту Dialog. |
AsyncResult.status | Определяет, удалось ли выполнить операцию. |
AsyncResult.error | Доступ к объекту Error, который предоставляет сведения об ошибке, если операция завершилась неудачно. |
AsyncResult.asyncContext | Доступ к пользовательскому объекту или значению, если вы передали его в качестве параметра asyncContext. |
Примеры
// 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. 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);
});
}
);
displayDialogAsync(startAddress, callback)
Отображает диалоговое окно для отображения или сбора сведений от пользователя или для упрощения веб-навигации.
displayDialogAsync(startAddress: string, callback?: (result: AsyncResult<Dialog>) => void): void;
Параметры
- startAddress
-
string
Принимает начальный полный URL-адрес HTTPS, который открывается в диалоговом окне. Относительные URL-адреса не должны использоваться.
- callback
-
(result: Office.AsyncResult<Office.Dialog>) => void
Необязательный параметр. Принимает функцию обратного вызова для обработки попытки создания диалога. В случае успешного выполнения AsyncResult.value является объектом Dialog.
Возвращаемое значение
void
Комментарии
Приложения: Excel, Outlook, PowerPoint, Word
Наборы обязательных элементов:
Этот метод доступен в наборе обязательных элементов DialogApi для надстроек Excel, PowerPoint или Word, а также в наборе требований почтового ящика 1.4 для Outlook. Дополнительные сведения о том, как указать набор требований в манифесте, см. в разделе Указание приложений Office и требований к API, если вы используете только манифест надстройки. Если вы используете унифицированный манифест для Microsoft 365, см. статью Надстройки Office с манифестом унифицированного приложения для Microsoft 365.
Начальная страница должна находиться в том же домене, что и родительская страница (параметр startAddress). После загрузки начальной страницы можно перейти к другим доменам.
Все вызовы Office.context.ui.messageParent
страницы также должны находиться в том же домене, что и родительская страница.
Рекомендации по проектированию:
Следующие рекомендации по проектированию относятся к диалоговым окнам.
Область задач надстройки Office может в любой момент открыть только одно диалоговое окно. Из команд надстроек (настраиваемые кнопки ленты или пункты меню) можно открыть одновременно несколько диалогов.
Пользователь может перемещать все диалоговые окна и изменять их размер.
При открытии все диалоговые окна размещаются по центру экрана.
Диалоговые окна отображаются поверх приложения в том порядке, в котором они были созданы.
Примеры применения диалогового окна:
Отображение страниц проверки подлинности для сбора учетных данных пользователей.
Отображение экрана ошибки, хода выполнения и ввода из команды ShowTaskpane или ExecuteAction.
Временное увеличение пространства, доступного пользователю для выполнения задачи.
Не используйте диалоговое окно для работы с документом. Используйте область задач.
DisplayDialogAsync Errors
Цифровой код | Значение |
---|---|
12004 | Домен URL-адреса, переданного в displayDialogAsync, не является доверенным. Домен должен совпадать с главной страницей (включая протокол и номер порта) или должен быть зарегистрирован в разделе AppDomains манифеста надстройки. |
12005 | URL-адрес, передаваемый в displayDialogAsync, использует протокол HTTP. Необходим протокол HTTPS. (В некоторых версиях Office сообщение об ошибке 12005 совпадает с сообщением 12004.) |
12007 | Диалоговое окно уже открыто из области задач. Надстройка области задач не может открывать сразу несколько диалоговых окон. |
12009 | Пользователь проигнорировал диалоговое окно. Эта ошибка может возникнуть в веб-версиях Office, где пользователи могут не разрешить надстройке открыть диалоговое окно. |
В функции обратного вызова, переданной методу displayDialogAsync, можно использовать свойства объекта AsyncResult, чтобы вернуть следующие сведения.
Property | Использовать |
---|---|
AsyncResult.value | Доступ к объекту Dialog. |
AsyncResult.status | Определяет, удалось ли выполнить операцию. |
AsyncResult.error | Доступ к объекту Error, который предоставляет сведения об ошибке, если операция завершилась неудачно. |
AsyncResult.asyncContext | Доступ к пользовательскому объекту или значению, если вы передали его в качестве параметра asyncContext. |
messageParent(message, messageOptions)
Доставляет сообщение из диалогового окна родительской странице.
messageParent(message: string, messageOptions?: DialogMessageOptions): void;
Параметры
- message
-
string
Принимает от диалогового окна сообщение, доставляемое надстройке. Можно отправить все, что можно сериализовать в строку, включая JSON и XML.
- messageOptions
- Office.DialogMessageOptions
Необязательный параметр. Предоставляет параметры отправки сообщения.
Возвращаемое значение
void
Комментарии
Приложения: Excel, Outlook, PowerPoint, Word
Наборы обязательных элементов:
messageOptions
Если используется параметр, также требуется DialogOrigin 1.1.
Примеры
// The following example shows how to send a JSON string to the parent. The profile object
// is returned from some website when a user signs into it.
function userProfileSignedIn(profile) {
const profileMessage = {
"name": profile.name,
"email": profile.email,
};
Office.context.ui.messageParent(JSON.stringify(profileMessage));
}
openBrowserWindow(url)
Открывает окно браузера и загружает указанный URL-адрес.
openBrowserWindow(url: string): void;
Параметры
- url
-
string
Полный URL-адрес, который необходимо открыть, включая протокол (например, https) и номер порта, если он есть.
Возвращаемое значение
void
Комментарии
Набор обязательных требований: OpenBrowserWindowAPI 1.1
Примеры
// The following example shows how to open a browser window to a download page and then close the add-in task pane.
Office.context.ui.openBrowserWindow("https://www.contoso.com/download");
Office.context.ui.closeContainer();
Office Add-ins