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 |
Возвращает текущий текст в указанном формате. Этот метод возвращает весь текущий текст в формате, заданном параметром |
get |
Возвращает текущий текст в указанном формате. Этот метод возвращает весь текущий текст в формате, заданном параметром |
get |
Получает значение, указывающее формат содержимого: HTML или текст. |
get |
Получает значение, указывающее формат содержимого: HTML или текст. |
prepend |
Добавляет указанное содержимое в начало текста элемента. |
prepend |
Добавляет указанное содержимое в начало текста элемента. |
set |
Заменяет весь текст указанным текстом. |
set |
Заменяет весь текст указанным текстом. |
set |
Заменяет выделенный фрагмент в основном тексте на заданный текст. Метод |
set |
Заменяет выделенный фрагмент в основном тексте на заданный текст. Метод |
Сведения о методе
getAsync(coercionType, options, callback)
Возвращает текущий текст в указанном формате.
Этот метод возвращает весь текущий текст в формате, заданном параметром coercionType
.
getAsync(coercionType: Office.CoercionType | string, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;
Параметры
- coercionType
-
Office.CoercionType | string
Формат возвращаемого текста.
- options
- Office.AsyncContextOptions
Литерал объекта, содержащий одно или несколько следующих свойств:- asyncContext
: разработчики могут предоставить любой объект, к которому они хотят получить доступ в функции обратного вызова.
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
Необязательный параметр. После завершения метода функция, переданная в callback
параметре, вызывается с одним параметром типа Office.AsyncResult. Текст предоставляется в запрошенном формате в свойстве asyncResult.value
.
Возвращаемое значение
void
Комментарии
[ Набор API: Почтовый ящик 1.3 ]
Минимальный уровень разрешений: чтение элемента
Применимый режим Outlook: Compose или чтение
Важно!
При работе с текстами в формате HTML важно отметить, что возвращаемое методом
Body.getAsync
значение не обязательно будет точно таким же, как ранее переданное в методеBody.setAsync
. Клиент может изменить значение, переданное в ,setAsync
чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки.В Outlook в Интернете и новом Outlook в Windows, если текст содержит форматированные элементы, такие как таблицы, списки и ссылки, укажите
Office.CoercionType.Html
в вызовеgetAsync
. В противном случае может появилось непредвиденное значение, например пустая строка.
Примеры
// This example gets the body of the item as plain text.
Office.context.mailbox.item.body.getAsync(
"text",
{ asyncContext: "This is passed to the callback" },
function callback(result) {
// Do something with the result.
});
// The following is an example of the result parameter passed to the callback function.
{
"value": "TEXT of whole body (including threads below)",
"status": "succeeded",
"asyncContext": "This is passed to the callback"
}
getAsync(coercionType, callback)
Возвращает текущий текст в указанном формате.
Этот метод возвращает весь текущий текст в формате, заданном параметром coercionType
.
getAsync(coercionType: Office.CoercionType | string, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;
Параметры
- coercionType
-
Office.CoercionType | string
Формат возвращаемого текста.
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
Необязательный параметр. После завершения метода функция, переданная в callback
параметре, вызывается с одним параметром типа Office.AsyncResult. Текст предоставляется в запрошенном формате в свойстве asyncResult.value
.
Возвращаемое значение
void
Комментарии
[ Набор API: Почтовый ящик 1.3 ]
Минимальный уровень разрешений: чтение элемента
Применимый режим Outlook: Compose или чтение
Важно!
При работе с текстами в формате HTML важно отметить, что возвращаемое методом
Body.getAsync
значение не обязательно будет точно таким же, как ранее переданное в методеBody.setAsync
. Клиент может изменить значение, переданное в ,setAsync
чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки.В Outlook в Интернете и новом Outlook в Windows, если текст содержит форматированные элементы, такие как таблицы, списки и ссылки, укажите
Office.CoercionType.Html
в вызовеgetAsync
. В противном случае может появилось непредвиденное значение, например пустая строка.
Примеры
// 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);
}
});
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 символов.
setAsync(data, options, callback)
Заменяет весь текст указанным текстом.
setAsync(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.3 ]
Минимальный уровень разрешений: чтение и запись элемента
Применимый режим Outlook: Compose
Рекомендуется: вызовите getTypeAsync
, а затем передайте возвращенное значение в options.coercionType
параметр .
Важно!
После замены текста указанным содержимым положение курсора зависит от того, на каком клиенте выполняется надстройка. В классическом Outlook в Windows курсор отображается в начале текста почтового элемента. В Outlook в Интернете и новом Outlook в Windows курсор отображается в конце текста почтового элемента. В Outlook на Mac положение курсора не сохраняется. Курсор исчезает после
prependAsync
вызова и появляется только тогда, когда пользователь выбирает что-то в тексте почтового элемента.При работе с текстами в формате HTML важно отметить, что возвращаемое методом
Body.getAsync
значение не обязательно будет точно таким же, как ранее переданное в методеBody.setAsync
. Клиент может изменить значение, переданное в ,setAsync
чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки.При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута
id
в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).В Outlook в Windows и на Mac пользователь надстройки не может отменить изменения это действие с помощью команды Отменить.
В Outlook для Android и iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.
ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.
Метод
setAsync
не поддерживает встроенный CSS. Вместо этого используйте внутренний или внешний CSS.
Ошибки:
DataExceedsMaximumSize
: параметр данных длиннее 1 000 000 символов.InvalidFormatError
options.coercionType
: для параметра задано значение ,Office.CoercionType.Html
а текст сообщения — в виде обычного текста.
Примеры
// When including links in HTML markup, you can disable online link preview
// by setting the id attribute on the anchor (<a>) to "LPNoLP".
Office.context.mailbox.item.body.setAsync(
'<a id="LPNoLP" href="http://www.contoso.com">Click here!</a>',
{
coercionType: Office.CoercionType.Html,
asyncContext: "This is passed to the callback"
},
(result) => {
// Process the result.
}
);
// The following is an example of the result parameter passed to the callback function.
{
"value": null,
"status": "succeeded",
"asyncContext": "This is passed to the callback"
}
// 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);
}
});
setAsync(data, callback)
Заменяет весь текст указанным текстом.
setAsync(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.3 ]
Минимальный уровень разрешений: чтение и запись элемента
Применимый режим Outlook: Compose
Рекомендуется: вызовите getTypeAsync
, а затем передайте возвращенное значение в options.coercionType
параметр .
Важно!
После замены текста указанным содержимым положение курсора зависит от того, на каком клиенте выполняется надстройка. В классическом Outlook в Windows курсор отображается в начале текста почтового элемента. В Outlook в Интернете и новом Outlook в Windows курсор отображается в конце текста почтового элемента. В Outlook на Mac положение курсора не сохраняется. Курсор исчезает после
prependAsync
вызова и появляется только тогда, когда пользователь выбирает что-то в тексте почтового элемента.При работе с текстами в формате HTML важно отметить, что возвращаемое методом
Body.getAsync
значение не обязательно будет точно таким же, как ранее переданное в методеBody.setAsync
. Клиент может изменить значение, переданное в ,setAsync
чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки.При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута
id
в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).В Outlook в Windows и на Mac пользователь надстройки не может отменить изменения это действие с помощью команды Отменить.
В Outlook для Android и iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.
ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.
Метод
setAsync
не поддерживает встроенный CSS. Вместо этого используйте внутренний или внешний CSS.
Ошибки:
DataExceedsMaximumSize
: параметр данных длиннее 1 000 000 символов.InvalidFormatError
options.coercionType
: для параметра задано значение ,Office.CoercionType.Html
а текст сообщения — в виде обычного текста.
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