Compartir a través de


Office.Body interface

El objeto body proporciona métodos para agregar y actualizar el contenido del mensaje o la cita. Se devuelve en la propiedad body del elemento seleccionado.

Comentarios

[ Conjunto de API: Buzón 1.1 ]

Problema conocido con los colores de borde de tabla HTML

Outlook en Windows: si va a establecer varios bordes de celda en diferentes colores de una tabla HTML en modo Compose, es posible que los bordes de una celda no reflejen el color esperado. Para conocer el comportamiento conocido, visite OfficeDev/office-js issue #1818.

Nivel mínimo de permiso: elemento de lectura

Modo de Outlook aplicable: Compose o lectura

Ejemplos

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

Métodos

getTypeAsync(options, callback)

Obtiene un valor que indica si el contenido tiene formato de texto o HTML.

getTypeAsync(callback)

Obtiene un valor que indica si el contenido tiene formato de texto o HTML.

prependAsync(data, options, callback)

Agrega el contenido especificado al principio del cuerpo del elemento.

prependAsync(data, callback)

Agrega el contenido especificado al principio del cuerpo del elemento.

setSelectedDataAsync(data, options, callback)

Reemplaza la selección que se ha realizado en el cuerpo por el texto especificado.

El método setSelectedDataAsync inserta la cadena especificada en la ubicación del cursor en el cuerpo del elemento o, si el texto se selecciona en el editor, reemplaza el texto seleccionado. Si nuca se ha colocado el cursor en el cuerpo del elemento, o si dicho cuerpo perdió enfoque en la interfaz de usuario, la cadena se insertará en la parte superior del contenido del cuerpo. Después de la inserción, el cursor se coloca al final del contenido insertado.

setSelectedDataAsync(data, callback)

Reemplaza la selección que se ha realizado en el cuerpo por el texto especificado.

El método setSelectedDataAsync inserta la cadena especificada en la ubicación del cursor en el cuerpo del elemento o, si el texto se selecciona en el editor, reemplaza el texto seleccionado. Si nuca se ha colocado el cursor en el cuerpo del elemento, o si dicho cuerpo perdió enfoque en la interfaz de usuario, la cadena se insertará en la parte superior del contenido del cuerpo. Después de la inserción, el cursor se coloca al final del contenido insertado.

Detalles del método

getTypeAsync(options, callback)

Obtiene un valor que indica si el contenido tiene formato de texto o HTML.

getTypeAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;

Parámetros

options
Office.AsyncContextOptions

Literal de objeto que contiene una o varias de las siguientes propiedades:- asyncContext: los desarrolladores pueden proporcionar cualquier objeto al que quieran acceder en la función de devolución de llamada.

callback

(asyncResult: Office.AsyncResult<Office.CoercionType>) => void

Opcional. Cuando se completa el método, se llama a la función pasada en el callback parámetro con un único parámetro de tipo Office.AsyncResult. El tipo de contenido se devuelve como uno de los CoercionType valores de la asyncResult.value propiedad .

Devoluciones

void

Comentarios

[ Conjunto de API: Buzón 1.1 ]

Nivel mínimo de permiso: elemento de lectura

Modo de Outlook aplicable: Compose

Importante: En Outlook en Android y en iOS, este método no se admite en el modo message Compose. Solo se admite el modo Organizador de citas. Para obtener más información sobre las API admitidas en Outlook mobile, vea API de JavaScript de Outlook compatibles con Outlook en dispositivos móviles.

Ejemplos

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

Obtiene un valor que indica si el contenido tiene formato de texto o HTML.

getTypeAsync(callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;

Parámetros

callback

(asyncResult: Office.AsyncResult<Office.CoercionType>) => void

Opcional. Cuando se completa el método, se llama a la función pasada en el callback parámetro con un único parámetro de tipo Office.AsyncResult. El tipo de contenido se devuelve como uno de los CoercionType valores de la asyncResult.value propiedad .

Devoluciones

void

Comentarios

[ Conjunto de API: Buzón 1.1 ]

Nivel mínimo de permiso: elemento de lectura

Modo de Outlook aplicable: Compose

Importante: En Outlook en Android y en iOS, este método no se admite en el modo message Compose. Solo se admite el modo Organizador de citas. Para obtener más información sobre las API admitidas en Outlook mobile, vea API de JavaScript de Outlook compatibles con Outlook en dispositivos móviles.

prependAsync(data, options, callback)

Agrega el contenido especificado al principio del cuerpo del elemento.

prependAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

Parámetros

data

string

Cadena que se debe insertar al principio del cuerpo. La cadena está limitada a 1 000 000 caracteres.

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

Literal de objeto que contiene una o varias de las siguientes propiedades:- asyncContext: los desarrolladores pueden proporcionar cualquier objeto al que quieran acceder en la función de devolución de llamada. coercionType : el formato deseado para el cuerpo. La cadena del parámetro data se convertirá a este formato.

callback

(asyncResult: Office.AsyncResult<void>) => void

Opcional. Cuando se completa el método, se llama a la función pasada en el callback parámetro con un único parámetro de tipo Office.AsyncResult. Cualquier error que se detecte se proporcionará en la propiedad asyncResult.error.

Devoluciones

void

Comentarios

[ Conjunto de API: Buzón 1.1 ]

Nivel mínimo de permiso: elemento de lectura y escritura

Modo de Outlook aplicable: Compose

Recomendado: llame a getTypeAsyncy pase el valor devuelto al options.coercionType parámetro .

Importante:

  • Una vez antepuesto el contenido, la posición del cursor depende del cliente en el que se ejecute el complemento. En Outlook en la Web y en Windows (nuevo y clásico), la posición del cursor sigue siendo la misma en el contenido preexistente del cuerpo. Por ejemplo, si el cursor se colocaba al principio del cuerpo antes de la prependAsync llamada, aparecerá entre el contenido antepuesto y el contenido preexistente del cuerpo después de la llamada. En Outlook en Mac, la posición del cursor no se conserva. El cursor desaparece después de la prependAsync llamada y solo vuelve a aparecer cuando el usuario selecciona algo en el cuerpo del elemento de correo.

  • Al trabajar con sólidos con formato HTML, es importante tener en cuenta que el cliente puede modificar el valor pasado a prependAsync para que se represente de forma eficaz con su motor de representación. Esto significa que el valor devuelto por una llamada posterior al método (introducido en el Body.getAsync buzón 1.3) no contendrá necesariamente el valor exacto que se pasó en la llamada anterior prependAsync .

  • Al incluir vínculos en el marcado HTML, puede deshabilitar la vista previa de vínculos en línea estableciendo el id atributo en el delimitador (<a>) en "LPNoLP" (consulte la sección Ejemplos para obtener un ejemplo).

  • En Outlook en Android y en iOS, este método no se admite en el modo message Compose. Solo se admite el modo Organizador de citas. Para obtener más información sobre las API admitidas en Outlook mobile, vea API de JavaScript de Outlook compatibles con Outlook en dispositivos móviles.

  • No se admiten archivos SVG. En su lugar, use archivos JPG o PNG.

  • El prependAsync método no admite CSS insertado. En su lugar, use CSS interno o externo.

Errores:

  • DataExceedsMaximumSize : el parámetro de datos tiene más de 1000 000 caracteres.

Ejemplos

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

Agrega el contenido especificado al principio del cuerpo del elemento.

prependAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

Parámetros

data

string

Cadena que se debe insertar al principio del cuerpo. La cadena está limitada a 1 000 000 caracteres.

callback

(asyncResult: Office.AsyncResult<void>) => void

Opcional. Cuando se completa el método, se llama a la función pasada en el callback parámetro con un único parámetro de tipo Office.AsyncResult. Cualquier error que se detecte se proporcionará en la propiedad asyncResult.error.

Devoluciones

void

Comentarios

[ Conjunto de API: Buzón 1.1 ]

Nivel mínimo de permiso: elemento de lectura y escritura

Modo de Outlook aplicable: Compose

Recomendado: llame a getTypeAsyncy pase el valor devuelto al options.coercionType parámetro .

Importante:

  • Una vez antepuesto el contenido, la posición del cursor depende del cliente en el que se ejecute el complemento. En Outlook en la Web y en Windows (nuevo y clásico), la posición del cursor sigue siendo la misma en el contenido preexistente del cuerpo. Por ejemplo, si el cursor se colocaba al principio del cuerpo antes de la prependAsync llamada, aparecerá entre el contenido antepuesto y el contenido preexistente del cuerpo después de la llamada. En Outlook en Mac, la posición del cursor no se conserva. El cursor desaparece después de la prependAsync llamada y solo vuelve a aparecer cuando el usuario selecciona algo en el cuerpo del elemento de correo.

  • Al trabajar con sólidos con formato HTML, es importante tener en cuenta que el cliente puede modificar el valor pasado a prependAsync para que se represente de forma eficaz con su motor de representación. Esto significa que el valor devuelto por una llamada posterior al método (introducido en el Body.getAsync buzón 1.3) no contendrá necesariamente el valor exacto que se pasó en la llamada anterior prependAsync .

  • Al incluir vínculos en el marcado HTML, puede deshabilitar la vista previa de vínculos en línea estableciendo el id atributo en el delimitador (<a>) en "LPNoLP" (consulte la sección Ejemplos para obtener un ejemplo).

  • En Outlook en Android y en iOS, este método no se admite en el modo message Compose. Solo se admite el modo Organizador de citas. Para obtener más información sobre las API admitidas en Outlook mobile, vea API de JavaScript de Outlook compatibles con Outlook en dispositivos móviles.

  • No se admiten archivos SVG. En su lugar, use archivos JPG o PNG.

  • El prependAsync método no admite CSS insertado. En su lugar, use CSS interno o externo.

Errores:

  • DataExceedsMaximumSize : el parámetro de datos tiene más de 1000 000 caracteres.

setSelectedDataAsync(data, options, callback)

Reemplaza la selección que se ha realizado en el cuerpo por el texto especificado.

El método setSelectedDataAsync inserta la cadena especificada en la ubicación del cursor en el cuerpo del elemento o, si el texto se selecciona en el editor, reemplaza el texto seleccionado. Si nuca se ha colocado el cursor en el cuerpo del elemento, o si dicho cuerpo perdió enfoque en la interfaz de usuario, la cadena se insertará en la parte superior del contenido del cuerpo. Después de la inserción, el cursor se coloca al final del contenido insertado.

setSelectedDataAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

Parámetros

data

string

La cadena que reemplazará el cuerpo existente. La cadena está limitada a 1 000 000 de caracteres.

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

Literal de objeto que contiene una o varias de las siguientes propiedades:- asyncContext: los desarrolladores pueden proporcionar cualquier objeto al que quieran acceder en la función de devolución de llamada. coercionType : el formato deseado para el cuerpo. La cadena del parámetro data se convertirá a este formato.

callback

(asyncResult: Office.AsyncResult<void>) => void

Opcional. Cuando se completa el método, se llama a la función pasada en el callback parámetro con un único parámetro de tipo Office.AsyncResult. Cualquier error que se detecte se proporcionará en la propiedad asyncResult.error.

Devoluciones

void

Comentarios

[ Conjunto de API: Buzón 1.1 ]

Nivel mínimo de permiso: elemento de lectura y escritura

Modo de Outlook aplicable: Compose

Recomendado: llame a getTypeAsync y pase el valor devuelto al options.coercionType parámetro .

* Importante:

  • Al incluir vínculos en el marcado HTML, puede deshabilitar la vista previa de vínculos en línea estableciendo el id atributo en el delimitador (<a>) en "LPNoLP" (consulte la sección Ejemplos para obtener un ejemplo).

  • No se admiten archivos SVG. En su lugar, use archivos JPG o PNG.

  • El setSelectedDataAsync método no admite CSS insertado. En su lugar, use CSS interno o externo.

Errores:

  • DataExceedsMaximumSize : el data parámetro tiene más de 1000 000 caracteres.

  • InvalidFormatError : el options.coercionType parámetro se establece Office.CoercionType.Html en y el cuerpo del mensaje está en texto sin formato.

Ejemplos

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

Reemplaza la selección que se ha realizado en el cuerpo por el texto especificado.

El método setSelectedDataAsync inserta la cadena especificada en la ubicación del cursor en el cuerpo del elemento o, si el texto se selecciona en el editor, reemplaza el texto seleccionado. Si nuca se ha colocado el cursor en el cuerpo del elemento, o si dicho cuerpo perdió enfoque en la interfaz de usuario, la cadena se insertará en la parte superior del contenido del cuerpo. Después de la inserción, el cursor se coloca al final del contenido insertado.

setSelectedDataAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

Parámetros

data

string

La cadena que reemplazará el cuerpo existente. La cadena está limitada a 1 000 000 de caracteres.

callback

(asyncResult: Office.AsyncResult<void>) => void

Opcional. Cuando se completa el método, se llama a la función pasada en el callback parámetro con un único parámetro de tipo Office.AsyncResult. Cualquier error que se detecte se proporcionará en la propiedad asyncResult.error.

Devoluciones

void

Comentarios

[ Conjunto de API: Buzón 1.1 ]

Nivel mínimo de permiso: elemento de lectura y escritura

Modo de Outlook aplicable: Compose

Recomendado: llame a getTypeAsync y pase el valor devuelto al options.coercionType parámetro .

* Importante:

  • Al incluir vínculos en el marcado HTML, puede deshabilitar la vista previa de vínculos en línea estableciendo el id atributo en el delimitador (<a>) en "LPNoLP" (consulte la sección Ejemplos para obtener un ejemplo).

  • No se admiten archivos SVG. En su lugar, use archivos JPG o PNG.

  • El setSelectedDataAsync método no admite CSS insertado. En su lugar, use CSS interno o externo.

Errores:

  • DataExceedsMaximumSize : el data parámetro tiene más de 1000 000 caracteres.

  • InvalidFormatError : el options.coercionType parámetro se establece Office.CoercionType.Html en y el cuerpo del mensaje está en texto sin formato.