Office.Body interface
Основной объект предоставляет методы для добавления и обновления содержимого сообщения или встречи. Он возвращается в свойстве body выбранного элемента.
Комментарии
[ Набор API: Почтовый ящик 1.1 ]
Известная проблема с цветами границ таблицы HTML
Outlook в Windows. Если в html-таблице в режиме Compose заданы разные цвета границ ячеек, границы ячейки могут не отражать ожидаемый цвет. Сведения об известном поведении см . в статье OfficeDev/office-js issue No 1818.
Минимальный уровень разрешений: чтение элемента
Применимый режим Outlook: Compose или чтение
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/add-inline-base64-image.yaml
const mailItem = Office.context.mailbox.item;
const base64String =
"iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAnUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN0S+bUAAAAMdFJOUwAQIDBAUI+fr7/P7yEupu8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF8SURBVGhD7dfLdoMwDEVR6Cspzf9/b20QYOthS5Zn0Z2kVdY6O2WULrFYLBaLxd5ur4mDZD14b8ogWS/dtxV+dmx9ysA2QUj9TQRWv5D7HyKwuIW9n0vc8tkpHP0W4BOg3wQ8wtlvA+PC1e8Ao8Ld7wFjQtHvAiNC2e8DdqHqKwCrUPc1gE1AfRVgEXBfB+gF0lcCWoH2tYBOYPpqQCNwfT3QF9i+AegJfN8CtAWhbwJagtS3AbIg9o2AJMh9M5C+SVGBvx6zAfmT0r+Bv8JMwP4kyFPir+cswF5KL3WLv14zAFBCLf56Tw9cparFX4upgaJUtPhrOS1QlY5W+vWTXrGgBFB/b72ev3/0igUdQPppP/nfowfKUUEFcP207y/yxKmgAYQ+PywoAFOfCH3A2MdCFzD3kdADBvq10AGG+pXQBgb7pdAEhvuF0AIc/VtoAK7+JciAs38KIuDugyAC/v4hiMCE/i7IwLRBsh68N2WQjMVisVgs9i5bln8LGScNcCrONQAAAABJRU5ErkJggg==";
// Get the current body of the message or appointment.
mailItem.body.getAsync(Office.CoercionType.Html, (bodyResult) => {
if (bodyResult.status === Office.AsyncResultStatus.Succeeded) {
// Insert the Base64-encoded image to the beginning of the body.
const options = { isInline: true, asyncContext: bodyResult.value };
mailItem.addFileAttachmentFromBase64Async(base64String, "sample.png", options, (attachResult) => {
if (attachResult.status === Office.AsyncResultStatus.Succeeded) {
let body = attachResult.asyncContext;
body = body.replace("<p class=MsoNormal>", `<p class=MsoNormal><img src="cid:sample.png">`);
mailItem.body.setAsync(body, { coercionType: Office.CoercionType.Html }, (setResult) => {
if (setResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("Inline Base64-encoded image added to the body.");
} else {
console.log(setResult.error.message);
}
});
} else {
console.log(attachResult.error.message);
}
});
} else {
console.log(bodyResult.error.message);
}
});
Методы
get |
Получает значение, указывающее формат содержимого: HTML или текст. |
get |
Получает значение, указывающее формат содержимого: HTML или текст. |
prepend |
Добавляет указанное содержимое в начало текста элемента. |
prepend |
Добавляет указанное содержимое в начало текста элемента. |
set |
Заменяет выделенный фрагмент в основном тексте на заданный текст. Метод |
set |
Заменяет выделенный фрагмент в основном тексте на заданный текст. Метод |
Сведения о методе
getTypeAsync(options, callback)
Получает значение, указывающее формат содержимого: HTML или текст.
getTypeAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;
Параметры
- options
- Office.AsyncContextOptions
Литерал объекта, содержащий одно или несколько следующих свойств:- asyncContext
: разработчики могут предоставить любой объект, к которому они хотят получить доступ в функции обратного вызова.
- callback
-
(asyncResult: Office.AsyncResult<Office.CoercionType>) => void
Необязательный параметр. После завершения метода функция, переданная в callback
параметре, вызывается с одним параметром типа Office.AsyncResult
. Тип контента возвращается как одно из значений CoercionType
в свойстве asyncResult.value
.
Возвращаемое значение
void
Комментарии
[ Набор API: Почтовый ящик 1.1 ]
Минимальный уровень разрешений: чтение элемента
Применимый режим Outlook: Compose
Важно! В Outlook для Android и в iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/get-body-format.yaml
// Get the mail item's body format (plain text or HTML) and log it to the console.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
console.log("Body format: " + asyncResult.value);
});
getTypeAsync(callback)
Получает значение, указывающее формат содержимого: HTML или текст.
getTypeAsync(callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;
Параметры
- callback
-
(asyncResult: Office.AsyncResult<Office.CoercionType>) => void
Необязательный параметр. После завершения метода функция, переданная в callback
параметре, вызывается с одним параметром типа Office.AsyncResult
. Тип контента возвращается как одно из значений CoercionType
в свойстве asyncResult.value
.
Возвращаемое значение
void
Комментарии
[ Набор API: Почтовый ящик 1.1 ]
Минимальный уровень разрешений: чтение элемента
Применимый режим Outlook: Compose
Важно! В Outlook для Android и в iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.
prependAsync(data, options, callback)
Добавляет указанное содержимое в начало текста элемента.
prependAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
Параметры
- data
-
string
Строка, добавляемая в начало основного текста. Максимальная длина — 1 000 000 символов.
Литерал объекта, содержащий одно или несколько следующих свойств:- asyncContext
: разработчики могут предоставить любой объект, к которому они хотят получить доступ в функции обратного вызова.
coercionType
: требуемый формат для текста. Строка в параметре data
будет преобразована в этот формат.
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
Необязательный параметр. После завершения метода функция, переданная в callback
параметре, вызывается с одним параметром типа Office.AsyncResult
. Все обнаруженные ошибки будут указаны в свойстве asyncResult.error
.
Возвращаемое значение
void
Комментарии
[ Набор API: Почтовый ящик 1.1 ]
Минимальный уровень разрешений: чтение и запись элемента
Применимый режим Outlook: Compose
Рекомендуется: вызовите getTypeAsync
, а затем передайте возвращенное значение в options.coercionType
параметр .
Важно!
После добавления содержимого положение курсора зависит от клиента, на котором выполняется надстройка. В Outlook в Интернете и в Windows (новые и классические) положение курсора остается неизменным в уже существовавом содержимом текста. Например, если курсор был расположен в начале текста перед вызовом
prependAsync
, он будет отображаться между предопределенным содержимым и ранее существовающим содержимым текста после вызова. В Outlook на Mac положение курсора не сохраняется. Курсор исчезает послеprependAsync
вызова и появляется только тогда, когда пользователь выбирает что-то в тексте почтового элемента.При работе с текстами в формате HTML важно отметить, что клиент может изменить значение, переданное
prependAsync
в, чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки. Это означает, что значение, возвращаемое при последующем вызовеBody.getAsync
метода (появившемся в почтовом ящике 1.3), не обязательно будет содержать точное значение, переданное в предыдущемprependAsync
вызове.При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута
id
в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).В Outlook для Android и iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.
ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.
Метод
prependAsync
не поддерживает встроенный CSS. Вместо этого используйте внутренний или внешний CSS.
Ошибки:
-
DataExceedsMaximumSize
: параметр данных длиннее 1 000 000 символов.
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/prepend-text-to-item-body.yaml
/* This snippet adds text to the beginning of the message or appointment's body.
When prepending a link in HTML markup to the body, you can disable the online link preview by setting the anchor tag's id attribute to "LPNoLP". For example, '<a id="LPNoLP" href="https://www.contoso.com">Click here!</a>'.
*/
const text = $("#text-field").val().toString();
// It's recommended to call getTypeAsync and pass its returned value to the options.coercionType parameter of the prependAsync call.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
const bodyFormat = asyncResult.value;
Office.context.mailbox.item.body.prependAsync(text, { coercionType: bodyFormat }, (asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
console.log(`"${text}" prepended to the body.`);
});
});
prependAsync(data, callback)
Добавляет указанное содержимое в начало текста элемента.
prependAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
Параметры
- data
-
string
Строка, добавляемая в начало основного текста. Максимальная длина — 1 000 000 символов.
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
Необязательный параметр. После завершения метода функция, переданная в callback
параметре, вызывается с одним параметром типа Office.AsyncResult
. Все обнаруженные ошибки будут указаны в свойстве asyncResult.error
.
Возвращаемое значение
void
Комментарии
[ Набор API: Почтовый ящик 1.1 ]
Минимальный уровень разрешений: чтение и запись элемента
Применимый режим Outlook: Compose
Рекомендуется: вызовите getTypeAsync
, а затем передайте возвращенное значение в options.coercionType
параметр .
Важно!
После добавления содержимого положение курсора зависит от клиента, на котором выполняется надстройка. В Outlook в Интернете и в Windows (новые и классические) положение курсора остается неизменным в уже существовавом содержимом текста. Например, если курсор был расположен в начале текста перед вызовом
prependAsync
, он будет отображаться между предопределенным содержимым и ранее существовающим содержимым текста после вызова. В Outlook на Mac положение курсора не сохраняется. Курсор исчезает послеprependAsync
вызова и появляется только тогда, когда пользователь выбирает что-то в тексте почтового элемента.При работе с текстами в формате HTML важно отметить, что клиент может изменить значение, переданное
prependAsync
в, чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки. Это означает, что значение, возвращаемое при последующем вызовеBody.getAsync
метода (появившемся в почтовом ящике 1.3), не обязательно будет содержать точное значение, переданное в предыдущемprependAsync
вызове.При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута
id
в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).В Outlook для Android и iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.
ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.
Метод
prependAsync
не поддерживает встроенный CSS. Вместо этого используйте внутренний или внешний CSS.
Ошибки:
-
DataExceedsMaximumSize
: параметр данных длиннее 1 000 000 символов.
setSelectedDataAsync(data, options, callback)
Заменяет выделенный фрагмент в основном тексте на заданный текст.
Метод setSelectedDataAsync
вставляет указанную строку в положение курсора в тексте элемента или, если текст выделен в редакторе, он заменяет выделенный текст. Если указатель не появлялся в основном тексте элемента, или элемент потерял фокус в интерфейсе, строка вставляется в начало основного текста. После вставки курсор помещается в конец вставленного содержимого.
setSelectedDataAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
Параметры
- data
-
string
Строка, которая заменяет существующий текст. Максимальная длина — 1 000 000 символов.
Литерал объекта, содержащий одно или несколько следующих свойств:- asyncContext
: разработчики могут предоставить любой объект, к которому они хотят получить доступ в функции обратного вызова.
coercionType
: требуемый формат для текста. Строка в параметре data
будет преобразована в этот формат.
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
Необязательный параметр. После завершения метода функция, переданная в callback
параметре, вызывается с одним параметром типа Office.AsyncResult
. Все обнаруженные ошибки будут указаны в свойстве asyncResult.error
.
Возвращаемое значение
void
Комментарии
[ Набор API: Почтовый ящик 1.1 ]
Минимальный уровень разрешений: чтение и запись элемента
Применимый режим Outlook: Compose
Рекомендуется: вызовите getTypeAsync
, а затем передайте возвращаемое значение в options.coercionType
параметр .
* Важно!
При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута
id
в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.
Метод
setSelectedDataAsync
не поддерживает встроенный CSS. Вместо этого используйте внутренний или внешний CSS.
Ошибки:
DataExceedsMaximumSize
data
: параметр длиннее 1 000 000 символов.InvalidFormatError
options.coercionType
: для параметра задано значение ,Office.CoercionType.Html
а текст сообщения — в виде обычного текста.
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/replace-selected-text.yaml
/* This snippet replaces selected text in a message or appointment's body with specified text.
If you want to use a link in HTML markup as a value of the setSelectedDataAsync call's data parameter, you can disable online link preview by setting the anchor tag's id attribute to "LPNoLP". For example, '<a id="LPNoLP" href="https://www.contoso.com">Click here!</a>'.
*/
const text = $("#text-field").val().toString();
// It's recommended to call getTypeAsync and pass its returned value to the options.coercionType parameter of the prependAsync call.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
const bodyFormat = asyncResult.value;
Office.context.mailbox.item.body.setSelectedDataAsync(text, { coercionType: bodyFormat }, (asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
console.log(`Replaced selected text with "${text}".`);
});
});
setSelectedDataAsync(data, callback)
Заменяет выделенный фрагмент в основном тексте на заданный текст.
Метод setSelectedDataAsync
вставляет указанную строку в положение курсора в тексте элемента или, если текст выделен в редакторе, он заменяет выделенный текст. Если указатель не появлялся в основном тексте элемента, или элемент потерял фокус в интерфейсе, строка вставляется в начало основного текста. После вставки курсор помещается в конец вставленного содержимого.
setSelectedDataAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
Параметры
- data
-
string
Строка, которая заменяет существующий текст. Максимальная длина — 1 000 000 символов.
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
Необязательный параметр. После завершения метода функция, переданная в callback
параметре, вызывается с одним параметром типа Office.AsyncResult
. Все обнаруженные ошибки будут указаны в свойстве asyncResult.error
.
Возвращаемое значение
void
Комментарии
[ Набор API: Почтовый ящик 1.1 ]
Минимальный уровень разрешений: чтение и запись элемента
Применимый режим Outlook: Compose
Рекомендуется: вызовите getTypeAsync
, а затем передайте возвращаемое значение в options.coercionType
параметр .
* Важно!
При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута
id
в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.
Метод
setSelectedDataAsync
не поддерживает встроенный CSS. Вместо этого используйте внутренний или внешний CSS.
Ошибки:
DataExceedsMaximumSize
data
: параметр длиннее 1 000 000 символов.InvalidFormatError
options.coercionType
: для параметра задано значение ,Office.CoercionType.Html
а текст сообщения — в виде обычного текста.
Office Add-ins