Word.ContentControl class

Representa un control de contenido. Los controles de contenido son regiones delimitadas y posiblemente con etiquetas de un documento que funcionan como contenedores para tipos de contenido específicos. Los controles de contenido individuales pueden incluir contenido como imágenes, tablas o párrafos de texto con formato. Actualmente, solo se admiten los controles de contenido de texto enriquecido, texto sin formato y casilla.

Extends

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {

    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;

    // Queue a command to load the id property for all of the content controls.
    contentControls.load('id');

    // Synchronize the document state by executing the queued commands,
    // and return a promise to indicate task completion.
    await context.sync();
    if (contentControls.items.length === 0) {
        console.log('No content control found.');
    }
    else {
        // Queue a command to load the properties on the first content control.
        contentControls.items[0].load(  'appearance,' +
                                        'cannotDelete,' +
                                        'cannotEdit,' +
                                        'color,' +
                                        'id,' +
                                        'placeHolderText,' +
                                        'removeWhenEdited,' +
                                        'title,' +
                                        'text,' +
                                        'type,' +
                                        'style,' +
                                        'tag,' +
                                        'font/size,' +
                                        'font/name,' +
                                        'font/color');

        // Synchronize the document state by executing the queued commands,
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Property values of the first content control:' +
            '   ----- appearance: ' + contentControls.items[0].appearance +
            '   ----- cannotDelete: ' + contentControls.items[0].cannotDelete +
            '   ----- cannotEdit: ' + contentControls.items[0].cannotEdit +
            '   ----- color: ' + contentControls.items[0].color +
            '   ----- id: ' + contentControls.items[0].id +
            '   ----- placeHolderText: ' + contentControls.items[0].placeholderText +
            '   ----- removeWhenEdited: ' + contentControls.items[0].removeWhenEdited +
            '   ----- title: ' + contentControls.items[0].title +
            '   ----- text: ' + contentControls.items[0].text +
            '   ----- type: ' + contentControls.items[0].type +
            '   ----- style: ' + contentControls.items[0].style +
            '   ----- tag: ' + contentControls.items[0].tag +
            '   ----- font size: ' + contentControls.items[0].font.size +
            '   ----- font name: ' + contentControls.items[0].font.name +
            '   ----- font color: ' + contentControls.items[0].font.color);
    }
});

Propiedades

appearance

Especifica la apariencia del control de contenido. El valor puede ser "BoundingBox", "Tags" o "Hidden".

cannotDelete

Especifica un valor que indica si el usuario puede eliminar el control de contenido. Esta propiedad y removeWhenEdited son mutuamente excluyentes.

cannotEdit

Especifica un valor que indica si el usuario puede editar el contenido del control de contenido.

checkboxContentControl

Especifica los datos relacionados con la casilla si el tipo del control de contenido es "CheckBox". De lo contrario, es null.

color

Especifica el color del control de contenido. El color se especifica en formato "#RRGGBB" o mediante el nombre del color.

contentControls

Obtiene la colección de objetos de control de contenido que se encuentran en el control de contenido.

context

Contexto de solicitud asociado al objeto . Esto conecta el proceso del complemento al proceso de la aplicación host de Office.

dropDownListContentControl

Especifica los datos relacionados con la lista desplegable si el tipo del control de contenido es "DropDownList". De lo contrario, es null.

endnotes

Obtiene la colección de notas al final del control de contenido.

fields

Obtiene la colección de objetos de campo en el control de contenido.

font

Obtiene el formato de texto del control de contenido. Úselo para obtener y establecer el nombre de la fuente, el tamaño, el color y otras propiedades.

footnotes

Obtiene la colección de notas al pie del control de contenido.

id

Obtiene un entero que representa el identificador del control de contenido.

inlinePictures

Obtiene la colección de objetos InlinePicture en el control de contenido. La colección no incluye imágenes flotantes.

lists

Obtiene la colección de objetos de lista en el control de contenido.

paragraphs

Obtiene la colección de objetos de párrafo en el control de contenido.

parentBody

Obtiene el cuerpo primario del control de contenido.

parentContentControl

Obtiene el control de contenido que contiene el control de contenido. Produce un ItemNotFound error si no hay un control de contenido primario.

parentContentControlOrNullObject

Obtiene el control de contenido que contiene el control de contenido. Si no hay un control de contenido primario, este método devolverá un objeto con su isNullObject propiedad establecida en true. Para obtener más información, vea *OrNullObject methods and properties( Métodos y propiedades de *OrNullObject).

parentTable

Obtiene la tabla que contiene el control de contenido. Produce un ItemNotFound error si no está incluido en una tabla.

parentTableCell

Obtiene la celda de tabla que contiene el control de contenido. Produce un ItemNotFound error si no está contenido en una celda de tabla.

parentTableCellOrNullObject

Obtiene la celda de tabla que contiene el control de contenido. Si no está contenido en una celda de tabla, este método devolverá un objeto con su isNullObject propiedad establecida en true. Para obtener más información, vea *OrNullObject methods and properties( Métodos y propiedades de *OrNullObject).

parentTableOrNullObject

Obtiene la tabla que contiene el control de contenido. Si no está contenido en una tabla, este método devolverá un objeto con su isNullObject propiedad establecida en true. Para obtener más información, vea *OrNullObject methods and properties( Métodos y propiedades de *OrNullObject).

placeholderText

Especifica el texto del marcador de posición del control de contenido. Se mostrará texto atenuado cuando el control de contenido esté vacío.

Nota: La operación set para esta propiedad no se admite en Word en la web.

removeWhenEdited

Especifica un valor que indica si el control de contenido se quita después de editarlo. Esta propiedad y cannotDelete son mutuamente excluyentes.

style

Especifica el nombre de estilo del control de contenido. Use esta propiedad para los estilos personalizados y los nombres de estilo localizados. Para usar los estilos integrados portátiles entre configuraciones regionales, consulte la propiedad "styleBuiltIn".

styleBuiltIn

Especifica el nombre de estilo integrado para el control de contenido. Use esta propiedad para los estilos integrados que son portátiles entre configuraciones regionales. Para usar estilos personalizados o nombres de estilo localizados, consulte la propiedad "style".

subtype

Obtiene el subtipo de control de contenido. El subtipo puede ser "RichTextInline", "RichTextParagraphs", "RichTextTableCell", "RichTextTableRow" y "RichTextTable" para controles de contenido de texto enriquecido, o "PlainTextInline" y "PlainTextParagraph" para controles de contenido de texto sin formato, o "CheckBox" para los controles de contenido de casilla.

tables

Obtiene la colección de objetos de tabla en el control de contenido.

tag

Especifica una etiqueta para identificar un control de contenido.

text

Obtiene el texto del control de contenido.

title

Especifica el título de un control de contenido.

type

Obtiene el tipo de control de contenido. Actualmente solo se admiten controles de texto enriquecido, texto sin formato y contenido de casilla.

Métodos

clear()

Borra el contenido del control de contenido. El usuario puede realizar la operación de deshacer en el contenido borrado.

delete(keepContent)

Elimina el control de contenido y su contenido. Si keepContent se establece en true, el contenido no se elimina.

getComments()

Obtiene los comentarios asociados al control de contenido.

getContentControls(options)

Obtiene los controles de contenido secundario admitidos actualmente en este control de contenido.

getHtml()

Obtiene una representación HTML del objeto de control de contenido. Cuando se representa en una página web o un visor HTML, el formato será una coincidencia cercana, pero no exacta, del formato del documento. Este método no devuelve exactamente el mismo HTML para el mismo documento en distintas plataformas (Windows, Mac, Word en la web, etc.). Si necesita fidelidad exacta o coherencia entre plataformas, use ContentControl.getOoxml() y convierta el XML devuelto en HTML.

getOoxml()

Obtiene la representación Office Open XML (OOXML) del objeto de control de contenido.

getRange(rangeLocation)

Obtiene el control de contenido completo, o el punto inicial o final del control de contenido, como un intervalo.

getReviewedText(changeTrackingVersion)

Obtiene texto revisado en función de la selección de ChangeTrackingVersion.

getReviewedText(changeTrackingVersionString)

Obtiene texto revisado en función de la selección de ChangeTrackingVersion.

getTextRanges(endingMarks, trimSpacing)

Obtiene los intervalos de texto del control de contenido mediante signos de puntuación u otras marcas finales.

getTrackedChanges()

Obtiene la colección de los objetos TrackedChange en el control de contenido.

insertBreak(breakType, insertLocation)

Inserta un salto en la ubicación especificada del documento principal. Este método no se puede usar con los controles de contenido "RichTextTable", "RichTextTableRow" y "RichTextTableCell".

insertFileFromBase64(base64File, insertLocation)

Inserta un documento en el control de contenido en la ubicación especificada.

insertHtml(html, insertLocation)

Inserta HTML en el control de contenido en la ubicación especificada.

insertInlinePictureFromBase64(base64EncodedImage, insertLocation)

Inserta una imagen incorporada en el control de contenido en la ubicación especificada.

insertOoxml(ooxml, insertLocation)

Inserta OOXML en el control de contenido en la ubicación especificada.

insertParagraph(paragraphText, insertLocation)

Inserta un párrafo en la ubicación especificada.

insertTable(rowCount, columnCount, insertLocation, values)

Inserta una tabla con el número especificado de filas y columnas en, o junto a, un control de contenido.

insertText(text, insertLocation)

Inserta texto en el control de contenido en la ubicación especificada.

load(options)

Pone en cola un comando para cargar las propiedades especificadas del objeto. Debe llamar a context.sync() antes de leer las propiedades.

load(propertyNames)

Pone en cola un comando para cargar las propiedades especificadas del objeto. Debe llamar a context.sync() antes de leer las propiedades.

load(propertyNamesAndPaths)

Pone en cola un comando para cargar las propiedades especificadas del objeto. Debe llamar a context.sync() antes de leer las propiedades.

resetState()

Restablece el estado del control de contenido.

search(searchText, searchOptions)

Realiza una búsqueda con las SearchOptions especificadas en el ámbito del objeto de control de contenido. Los resultados de la búsqueda son una colección de objetos de intervalo.

select(selectionMode)

Selecciona el control de contenido. Esto hace que Word se desplace hasta la selección.

select(selectionModeString)

Selecciona el control de contenido. Esto hace que Word se desplace hasta la selección.

set(properties, options)

Establece varias propiedades de un objeto al mismo tiempo. Puede pasar un objeto sin formato con las propiedades adecuadas u otro objeto de API del mismo tipo.

set(properties)

Establece varias propiedades en el objeto al mismo tiempo, en función de un objeto cargado existente.

setState(contentControlState)

Establece el estado del control de contenido.

setState(contentControlStateString)

Establece el estado del control de contenido.

split(delimiters, multiParagraphs, trimDelimiters, trimSpacing)

Divide el control de contenido en intervalos secundarios mediante delimitadores.

toJSON()

Invalida el método JavaScript toJSON() para proporcionar una salida más útil cuando se pasa un objeto de API a JSON.stringify(). (JSON.stringifya su vez, llama al toJSON método del objeto que se le pasa). Mientras que el Word original. El objeto ContentControl es un objeto de API, el toJSON método devuelve un objeto JavaScript sin formato (escrito como Word.Interfaces.ContentControlData) que contiene copias superficiales de las propiedades secundarias cargadas del objeto original.

track()

Realiza un seguimiento del objeto de ajuste automático según cambios adyacentes en el documento. Esta llamada es una abreviatura para context.trackedObjects.add(thisObject). Si usa este objeto entre .sync llamadas y fuera de la ejecución secuencial de un lote ".run" y obtiene un error "InvalidObjectPath" al establecer una propiedad o invocar un método en el objeto, debe agregar el objeto a la colección de objetos de seguimiento cuando se creó el objeto por primera vez. Si este objeto forma parte de una colección, también debe realizar un seguimiento de la colección primaria.

untrack()

Libere la memoria asociada a este objeto, si se ha realizado un seguimiento de él anteriormente. Esta llamada es abreviada para context.trackedObjects.remove(thisObject). Tener muchos objetos marcados ralentiza la aplicación host, así que debe recordar liberar los objetos que agregue cuando haya terminado con ellos. Tendrá que llamar context.sync() a antes de que la versión de memoria surta efecto.

Eventos

onCommentAdded

Se produce cuando se agregan nuevos comentarios.

onCommentChanged

Se produce cuando se cambia un comentario o su respuesta.

onCommentDeselected

Se produce cuando se anula la selección de un comentario.

onCommentSelected

Se produce cuando se selecciona un comentario.

onDataChanged

Se produce cuando se cambian los datos dentro del control de contenido. Para obtener el nuevo texto, cargue este control de contenido en el controlador. Para obtener el texto antiguo, no lo cargue.

onDeleted

Se produce cuando se elimina el control de contenido. No cargue este control de contenido en el controlador; de lo contrario, no podrá obtener sus propiedades originales.

onEntered

Se produce cuando se escribe el control de contenido.

onExited

Se produce cuando se cierra el control de contenido, por ejemplo, cuando el cursor sale del control de contenido.

onSelectionChanged

Se produce cuando se cambia la selección dentro del control de contenido.

Detalles de las propiedades

appearance

Especifica la apariencia del control de contenido. El valor puede ser "BoundingBox", "Tags" o "Hidden".

appearance: Word.ContentControlAppearance | "BoundingBox" | "Tags" | "Hidden";

Valor de propiedad

Word.ContentControlAppearance | "BoundingBox" | "Tags" | "Hidden"

Comentarios

[ Conjunto de API: WordApi 1.1 ]

cannotDelete

Especifica un valor que indica si el usuario puede eliminar el control de contenido. Esta propiedad y removeWhenEdited son mutuamente excluyentes.

cannotDelete: boolean;

Valor de propiedad

boolean

Comentarios

[ Conjunto de API: WordApi 1.1 ]

cannotEdit

Especifica un valor que indica si el usuario puede editar el contenido del control de contenido.

cannotEdit: boolean;

Valor de propiedad

boolean

Comentarios

[ Conjunto de API: WordApi 1.1 ]

checkboxContentControl

Especifica los datos relacionados con la casilla si el tipo del control de contenido es "CheckBox". De lo contrario, es null.

readonly checkboxContentControl: Word.CheckboxContentControl;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.7 ]

color

Especifica el color del control de contenido. El color se especifica en formato "#RRGGBB" o mediante el nombre del color.

color: string;

Valor de propiedad

string

Comentarios

[ Conjunto de API: WordApi 1.1 ]

contentControls

Obtiene la colección de objetos de control de contenido que se encuentran en el control de contenido.

readonly contentControls: Word.ContentControlCollection;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.1 ]

context

Contexto de solicitud asociado al objeto . Esto conecta el proceso del complemento al proceso de la aplicación host de Office.

context: RequestContext;

Valor de propiedad

dropDownListContentControl

Nota

Esta API se ofrece a los desarrolladores como versión preliminar y puede cambiar en función de los comentarios que recibamos. No utilice esta API en un entorno de producción.

Especifica los datos relacionados con la lista desplegable si el tipo del control de contenido es "DropDownList". De lo contrario, es null.

readonly dropDownListContentControl: Word.DropDownListContentControl;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi BETA (SOLO VERSIÓN PRELIMINAR) ]

endnotes

Obtiene la colección de notas al final del control de contenido.

readonly endnotes: Word.NoteItemCollection;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.5 ]

fields

Obtiene la colección de objetos de campo en el control de contenido.

readonly fields: Word.FieldCollection;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.4 ]

font

Obtiene el formato de texto del control de contenido. Úselo para obtener y establecer el nombre de la fuente, el tamaño, el color y otras propiedades.

readonly font: Word.Font;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.1 ]

footnotes

Obtiene la colección de notas al pie del control de contenido.

readonly footnotes: Word.NoteItemCollection;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.5 ]

id

Obtiene un entero que representa el identificador del control de contenido.

readonly id: number;

Valor de propiedad

number

Comentarios

[ Conjunto de API: WordApi 1.1 ]

inlinePictures

Obtiene la colección de objetos InlinePicture en el control de contenido. La colección no incluye imágenes flotantes.

readonly inlinePictures: Word.InlinePictureCollection;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.1 ]

lists

Obtiene la colección de objetos de lista en el control de contenido.

readonly lists: Word.ListCollection;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.3 ]

paragraphs

Obtiene la colección de objetos de párrafo en el control de contenido.

readonly paragraphs: Word.ParagraphCollection;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Importante: En el caso de los conjuntos de requisitos 1.1 y 1.2, no se devuelven los párrafos de las tablas totalmente contenidos dentro de este control de contenido. A partir del conjunto de requisitos 1.3, también se devuelven los párrafos de dichas tablas.

parentBody

Obtiene el cuerpo primario del control de contenido.

readonly parentBody: Word.Body;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.3 ]

parentContentControl

Obtiene el control de contenido que contiene el control de contenido. Produce un ItemNotFound error si no hay un control de contenido primario.

readonly parentContentControl: Word.ContentControl;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.1 ]

parentContentControlOrNullObject

Obtiene el control de contenido que contiene el control de contenido. Si no hay un control de contenido primario, este método devolverá un objeto con su isNullObject propiedad establecida en true. Para obtener más información, vea *OrNullObject methods and properties( Métodos y propiedades de *OrNullObject).

readonly parentContentControlOrNullObject: Word.ContentControl;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.3 ]

parentTable

Obtiene la tabla que contiene el control de contenido. Produce un ItemNotFound error si no está incluido en una tabla.

readonly parentTable: Word.Table;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.3 ]

parentTableCell

Obtiene la celda de tabla que contiene el control de contenido. Produce un ItemNotFound error si no está contenido en una celda de tabla.

readonly parentTableCell: Word.TableCell;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.3 ]

parentTableCellOrNullObject

Obtiene la celda de tabla que contiene el control de contenido. Si no está contenido en una celda de tabla, este método devolverá un objeto con su isNullObject propiedad establecida en true. Para obtener más información, vea *OrNullObject methods and properties( Métodos y propiedades de *OrNullObject).

readonly parentTableCellOrNullObject: Word.TableCell;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.3 ]

parentTableOrNullObject

Obtiene la tabla que contiene el control de contenido. Si no está contenido en una tabla, este método devolverá un objeto con su isNullObject propiedad establecida en true. Para obtener más información, vea *OrNullObject methods and properties( Métodos y propiedades de *OrNullObject).

readonly parentTableOrNullObject: Word.Table;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.3 ]

placeholderText

Especifica el texto del marcador de posición del control de contenido. Se mostrará texto atenuado cuando el control de contenido esté vacío.

Nota: La operación set para esta propiedad no se admite en Word en la web.

placeholderText: string;

Valor de propiedad

string

Comentarios

[ Conjunto de API: WordApi 1.1 ]

removeWhenEdited

Especifica un valor que indica si el control de contenido se quita después de editarlo. Esta propiedad y cannotDelete son mutuamente excluyentes.

removeWhenEdited: boolean;

Valor de propiedad

boolean

Comentarios

[ Conjunto de API: WordApi 1.1 ]

style

Especifica el nombre de estilo del control de contenido. Use esta propiedad para los estilos personalizados y los nombres de estilo localizados. Para usar los estilos integrados portátiles entre configuraciones regionales, consulte la propiedad "styleBuiltIn".

style: string;

Valor de propiedad

string

Comentarios

[ Conjunto de API: WordApi 1.1 ]

styleBuiltIn

Especifica el nombre de estilo integrado para el control de contenido. Use esta propiedad para los estilos integrados que son portátiles entre configuraciones regionales. Para usar estilos personalizados o nombres de estilo localizados, consulte la propiedad "style".

styleBuiltIn: Word.BuiltInStyleName | "Other" | "Normal" | "Heading1" | "Heading2" | "Heading3" | "Heading4" | "Heading5" | "Heading6" | "Heading7" | "Heading8" | "Heading9" | "Toc1" | "Toc2" | "Toc3" | "Toc4" | "Toc5" | "Toc6" | "Toc7" | "Toc8" | "Toc9" | "FootnoteText" | "Header" | "Footer" | "Caption" | "FootnoteReference" | "EndnoteReference" | "EndnoteText" | "Title" | "Subtitle" | "Hyperlink" | "Strong" | "Emphasis" | "NoSpacing" | "ListParagraph" | "Quote" | "IntenseQuote" | "SubtleEmphasis" | "IntenseEmphasis" | "SubtleReference" | "IntenseReference" | "BookTitle" | "Bibliography" | "TocHeading" | "TableGrid" | "PlainTable1" | "PlainTable2" | "PlainTable3" | "PlainTable4" | "PlainTable5" | "TableGridLight" | "GridTable1Light" | "GridTable1Light_Accent1" | "GridTable1Light_Accent2" | "GridTable1Light_Accent3" | "GridTable1Light_Accent4" | "GridTable1Light_Accent5" | "GridTable1Light_Accent6" | "GridTable2" | "GridTable2_Accent1" | "GridTable2_Accent2" | "GridTable2_Accent3" | "GridTable2_Accent4" | "GridTable2_Accent5" | "GridTable2_Accent6" | "GridTable3" | "GridTable3_Accent1" | "GridTable3_Accent2" | "GridTable3_Accent3" | "GridTable3_Accent4" | "GridTable3_Accent5" | "GridTable3_Accent6" | "GridTable4" | "GridTable4_Accent1" | "GridTable4_Accent2" | "GridTable4_Accent3" | "GridTable4_Accent4" | "GridTable4_Accent5" | "GridTable4_Accent6" | "GridTable5Dark" | "GridTable5Dark_Accent1" | "GridTable5Dark_Accent2" | "GridTable5Dark_Accent3" | "GridTable5Dark_Accent4" | "GridTable5Dark_Accent5" | "GridTable5Dark_Accent6" | "GridTable6Colorful" | "GridTable6Colorful_Accent1" | "GridTable6Colorful_Accent2" | "GridTable6Colorful_Accent3" | "GridTable6Colorful_Accent4" | "GridTable6Colorful_Accent5" | "GridTable6Colorful_Accent6" | "GridTable7Colorful" | "GridTable7Colorful_Accent1" | "GridTable7Colorful_Accent2" | "GridTable7Colorful_Accent3" | "GridTable7Colorful_Accent4" | "GridTable7Colorful_Accent5" | "GridTable7Colorful_Accent6" | "ListTable1Light" | "ListTable1Light_Accent1" | "ListTable1Light_Accent2" | "ListTable1Light_Accent3" | "ListTable1Light_Accent4" | "ListTable1Light_Accent5" | "ListTable1Light_Accent6" | "ListTable2" | "ListTable2_Accent1" | "ListTable2_Accent2" | "ListTable2_Accent3" | "ListTable2_Accent4" | "ListTable2_Accent5" | "ListTable2_Accent6" | "ListTable3" | "ListTable3_Accent1" | "ListTable3_Accent2" | "ListTable3_Accent3" | "ListTable3_Accent4" | "ListTable3_Accent5" | "ListTable3_Accent6" | "ListTable4" | "ListTable4_Accent1" | "ListTable4_Accent2" | "ListTable4_Accent3" | "ListTable4_Accent4" | "ListTable4_Accent5" | "ListTable4_Accent6" | "ListTable5Dark" | "ListTable5Dark_Accent1" | "ListTable5Dark_Accent2" | "ListTable5Dark_Accent3" | "ListTable5Dark_Accent4" | "ListTable5Dark_Accent5" | "ListTable5Dark_Accent6" | "ListTable6Colorful" | "ListTable6Colorful_Accent1" | "ListTable6Colorful_Accent2" | "ListTable6Colorful_Accent3" | "ListTable6Colorful_Accent4" | "ListTable6Colorful_Accent5" | "ListTable6Colorful_Accent6" | "ListTable7Colorful" | "ListTable7Colorful_Accent1" | "ListTable7Colorful_Accent2" | "ListTable7Colorful_Accent3" | "ListTable7Colorful_Accent4" | "ListTable7Colorful_Accent5" | "ListTable7Colorful_Accent6";

Valor de propiedad

Word.BuiltInStyleName | "Other" | "Normal" | "Heading1" | "Heading2" | "Heading3" | "Heading4" | "Heading5" | "Heading6" | "Heading7" | "Heading8" | "Heading9" | "Toc1" | "Toc2" | "Toc3" | "Toc4" | "Toc5" | "Toc6" | "Toc7" | "Toc8" | "Toc9" | "FootnoteText" | "Header" | "Footer" | "Caption" | "FootnoteReference" | "EndnoteReference" | "EndnoteText" | "Title" | "Subtitle" | "Hyperlink" | "Strong" | "Emphasis" | "NoSpacing" | "ListParagraph" | "Quote" | "IntenseQuote" | "SubtleEmphasis" | "IntenseEmphasis" | "SubtleReference" | "IntenseReference" | "BookTitle" | "Bibliography" | "TocHeading" | "TableGrid" | "PlainTable1" | "PlainTable2" | "PlainTable3" | "PlainTable4" | "PlainTable5" | "TableGridLight" | "GridTable1Light" | "GridTable1Light_Accent1" | "GridTable1Light_Accent2" | "GridTable1Light_Accent3" | "GridTable1Light_Accent4" | "GridTable1Light_Accent5" | "GridTable1Light_Accent6" | "GridTable2" | "GridTable2_Accent1" | "GridTable2_Accent2" | "GridTable2_Accent3" | "GridTable2_Accent4" | "GridTable2_Accent5" | "GridTable2_Accent6" | "GridTable3" | "GridTable3_Accent1" | "GridTable3_Accent2" | "GridTable3_Accent3" | "GridTable3_Accent4" | "GridTable3_Accent5" | "GridTable3_Accent6" | "GridTable4" | "GridTable4_Accent1" | "GridTable4_Accent2" | "GridTable4_Accent3" | "GridTable4_Accent4" | "GridTable4_Accent5" | "GridTable4_Accent6" | "GridTable5Dark" | "GridTable5Dark_Accent1" | "GridTable5Dark_Accent2" | "GridTable5Dark_Accent3" | "GridTable5Dark_Accent4" | "GridTable5Dark_Accent5" | "GridTable5Dark_Accent6" | "GridTable6Colorful" | "GridTable6Colorful_Accent1" | "GridTable6Colorful_Accent2" | "GridTable6Colorful_Accent3" | "GridTable6Colorful_Accent4" | "GridTable6Colorful_Accent5" | "GridTable6Colorful_Accent6" | "GridTable7Colorful" | "GridTable7Colorful_Accent1" | "GridTable7Colorful_Accent2" | "GridTable7Colorful_Accent3" | "GridTable7Colorful_Accent4" | "GridTable7Colorful_Accent5" | "GridTable7Colorful_Accent6" | "ListTable1Light" | "ListTable1Light_Accent1" | "ListTable1Light_Accent2" | "ListTable1Light_Accent3" | "ListTable1Light_Accent4" | "ListTable1Light_Accent5" | "ListTable1Light_Accent6" | "ListTable2" | "ListTable2_Accent1" | "ListTable2_Accent2" | "ListTable2_Accent3" | "ListTable2_Accent4" | "ListTable2_Accent5" | "ListTable2_Accent6" | "ListTable3" | "ListTable3_Accent1" | "ListTable3_Accent2" | "ListTable3_Accent3" | "ListTable3_Accent4" | "ListTable3_Accent5" | "ListTable3_Accent6" | "ListTable4" | "ListTable4_Accent1" | "ListTable4_Accent2" | "ListTable4_Accent3" | "ListTable4_Accent4" | "ListTable4_Accent5" | "ListTable4_Accent6" | "ListTable5Dark" | "ListTable5Dark_Accent1" | "ListTable5Dark_Accent2" | "ListTable5Dark_Accent3" | "ListTable5Dark_Accent4" | "ListTable5Dark_Accent5" | "ListTable5Dark_Accent6" | "ListTable6Colorful" | "ListTable6Colorful_Accent1" | "ListTable6Colorful_Accent2" | "ListTable6Colorful_Accent3" | "ListTable6Colorful_Accent4" | "ListTable6Colorful_Accent5" | "ListTable6Colorful_Accent6" | "ListTable7Colorful" | "ListTable7Colorful_Accent1" | "ListTable7Colorful_Accent2" | "ListTable7Colorful_Accent3" | "ListTable7Colorful_Accent4" | "ListTable7Colorful_Accent5" | "ListTable7Colorful_Accent6"

Comentarios

[ Conjunto de API: WordApi 1.3 ]

subtype

Obtiene el subtipo de control de contenido. El subtipo puede ser "RichTextInline", "RichTextParagraphs", "RichTextTableCell", "RichTextTableRow" y "RichTextTable" para controles de contenido de texto enriquecido, o "PlainTextInline" y "PlainTextParagraph" para controles de contenido de texto sin formato, o "CheckBox" para los controles de contenido de casilla.

readonly subtype: Word.ContentControlType | "Unknown" | "RichTextInline" | "RichTextParagraphs" | "RichTextTableCell" | "RichTextTableRow" | "RichTextTable" | "PlainTextInline" | "PlainTextParagraph" | "Picture" | "BuildingBlockGallery" | "CheckBox" | "ComboBox" | "DropDownList" | "DatePicker" | "RepeatingSection" | "RichText" | "PlainText";

Valor de propiedad

Word.ContentControlType | "Unknown" | "RichTextInline" | "RichTextParagraphs" | "RichTextTableCell" | "RichTextTableRow" | "RichTextTable" | "PlainTextInline" | "PlainTextParagraph" | "Picture" | "BuildingBlockGallery" | "CheckBox" | "ComboBox" | "DropDownList" | "DatePicker" | "RepeatingSection" | "RichText" | "PlainText"

Comentarios

[ Conjunto de API: WordApi 1.3 ]

tables

Obtiene la colección de objetos de tabla en el control de contenido.

readonly tables: Word.TableCollection;

Valor de propiedad

Comentarios

[ Conjunto de API: WordApi 1.3 ]

tag

Especifica una etiqueta para identificar un control de contenido.

tag: string;

Valor de propiedad

string

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/10-content-controls/insert-and-change-content-controls.yaml

// Traverses each paragraph of the document and wraps a content control on each with either a even or odd tags.
await Word.run(async (context) => {
  let paragraphs = context.document.body.paragraphs;
  paragraphs.load("$none"); // Don't need any properties; just wrap each paragraph with a content control.

  await context.sync();

  for (let i = 0; i < paragraphs.items.length; i++) {
    let contentControl = paragraphs.items[i].insertContentControl();
    // For even, tag "even".
    if (i % 2 === 0) {
      contentControl.tag = "even";
    } else {
      contentControl.tag = "odd";
    }
  }
  console.log("Content controls inserted: " + paragraphs.items.length);

  await context.sync();
});

text

Obtiene el texto del control de contenido.

readonly text: string;

Valor de propiedad

string

Comentarios

[ Conjunto de API: WordApi 1.1 ]

title

Especifica el título de un control de contenido.

title: string;

Valor de propiedad

string

Comentarios

[ Conjunto de API: WordApi 1.1 ]

type

Obtiene el tipo de control de contenido. Actualmente solo se admiten controles de texto enriquecido, texto sin formato y contenido de casilla.

readonly type: Word.ContentControlType | "Unknown" | "RichTextInline" | "RichTextParagraphs" | "RichTextTableCell" | "RichTextTableRow" | "RichTextTable" | "PlainTextInline" | "PlainTextParagraph" | "Picture" | "BuildingBlockGallery" | "CheckBox" | "ComboBox" | "DropDownList" | "DatePicker" | "RepeatingSection" | "RichText" | "PlainText";

Valor de propiedad

Word.ContentControlType | "Unknown" | "RichTextInline" | "RichTextParagraphs" | "RichTextTableCell" | "RichTextTableRow" | "RichTextTable" | "PlainTextInline" | "PlainTextParagraph" | "Picture" | "BuildingBlockGallery" | "CheckBox" | "ComboBox" | "DropDownList" | "DatePicker" | "RepeatingSection" | "RichText" | "PlainText"

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Detalles del método

clear()

Borra el contenido del control de contenido. El usuario puede realizar la operación de deshacer en el contenido borrado.

clear(): void;

Devoluciones

void

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;
    
    // Queue a command to load the content controls collection.
    contentControls.load('text');
     
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
        
    if (contentControls.items.length === 0) {
        console.log("There isn't a content control in this document.");
    } else {
        // Queue a command to clear the contents of the first content control.
        contentControls.items[0].clear();

        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Content control cleared of contents.');
    }
});

delete(keepContent)

Elimina el control de contenido y su contenido. Si keepContent se establece en true, el contenido no se elimina.

delete(keepContent: boolean): void;

Parámetros

keepContent

boolean

Obligatorio. Indica si el contenido se debe eliminar con el control de contenido. Si keepContent se establece en true, el contenido no se elimina.

Devoluciones

void

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;
    
    // Queue a command to load the content controls collection.
    contentControls.load('text');
     
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
        
    if (contentControls.items.length === 0) {
        console.log("There isn't a content control in this document.");
    } else {            
        // Queue a command to delete the first content control. 
        // The contents will remain in the document.
        contentControls.items[0].delete(true);

        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Content control cleared of contents.'); 
    }
});
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/10-content-controls/content-control-ondeleted-event.yaml

await Word.run(async (context) => {
  const contentControls = context.document.contentControls.getByTag("forTesting");
  contentControls.load("items");
  await context.sync();

  if (contentControls.items.length === 0) {
    console.log("There are no content controls in this document.");
  } else {
    console.log("Control to be deleted:");
    console.log(contentControls.items[0]);
    contentControls.items[0].delete(false);
    await context.sync();
  }
});

getComments()

Obtiene los comentarios asociados al control de contenido.

getComments(): Word.CommentCollection;

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.4 ]

getContentControls(options)

Obtiene los controles de contenido secundario admitidos actualmente en este control de contenido.

getContentControls(options?: Word.ContentControlOptions): Word.ContentControlCollection;

Parámetros

options
Word.ContentControlOptions

Opcional. Opciones que definen qué controles de contenido se devuelven.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.5 ]

Importante: Si se proporcionan tipos específicos en el parámetro options, solo se devuelven los controles de contenido de los tipos admitidos. Tenga en cuenta que se iniciará una excepción en el uso de métodos de un Word genérico. ContentControl que no son relevantes para el tipo específico. Con el tiempo, se pueden admitir tipos adicionales de controles de contenido. Por lo tanto, el complemento debe solicitar y controlar tipos específicos de controles de contenido.

getHtml()

Obtiene una representación HTML del objeto de control de contenido. Cuando se representa en una página web o un visor HTML, el formato será una coincidencia cercana, pero no exacta, del formato del documento. Este método no devuelve exactamente el mismo HTML para el mismo documento en distintas plataformas (Windows, Mac, Word en la web, etc.). Si necesita fidelidad exacta o coherencia entre plataformas, use ContentControl.getOoxml() y convierta el XML devuelto en HTML.

getHtml(): OfficeExtension.ClientResult<string>;

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection that contains a specific tag.
    const contentControlsWithTag = context.document.contentControls.getByTag('Customer-Address');
    
    // Queue a command to load the tag property for all of content controls.
    contentControlsWithTag.load('tag');
     
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    if (contentControlsWithTag.items.length === 0) {
        console.log('No content control found.');
    }
    else {
        // Queue a command to get the HTML contents of the first content control.
        const html = contentControlsWithTag.items[0].getHtml();
    
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Content control HTML: ' + html.value);
    }
});

getOoxml()

Obtiene la representación Office Open XML (OOXML) del objeto de control de contenido.

getOoxml(): OfficeExtension.ClientResult<string>;

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;
    
    // Queue a command to load the id property for all of the content controls.
    contentControls.load('id');
     
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    if (contentControls.items.length === 0) {
        console.log('No content control found.');
    }
    else {
        // Queue a command to get the OOXML contents of the first content control.
        const ooxml = contentControls.items[0].getOoxml();
    
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Content control OOXML: ' + ooxml.value);
    }
});

getRange(rangeLocation)

Obtiene el control de contenido completo, o el punto inicial o final del control de contenido, como un intervalo.

getRange(rangeLocation?: Word.RangeLocation | "Whole" | "Start" | "End" | "Before" | "After" | "Content"): Word.Range;

Parámetros

rangeLocation

Word.RangeLocation | "Whole" | "Start" | "End" | "Before" | "After" | "Content"

Opcional. La ubicación del intervalo debe ser "Whole", "Start", "End", "Before", "After" o "Content".

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.3 ]

getReviewedText(changeTrackingVersion)

Obtiene texto revisado en función de la selección de ChangeTrackingVersion.

getReviewedText(changeTrackingVersion?: Word.ChangeTrackingVersion): OfficeExtension.ClientResult<string>;

Parámetros

changeTrackingVersion
Word.ChangeTrackingVersion

Opcional. El valor debe ser "Original" o "Current". El valor predeterminado es "Current".

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.4 ]

getReviewedText(changeTrackingVersionString)

Obtiene texto revisado en función de la selección de ChangeTrackingVersion.

getReviewedText(changeTrackingVersionString?: "Original" | "Current"): OfficeExtension.ClientResult<string>;

Parámetros

changeTrackingVersionString

"Original" | "Current"

Opcional. El valor debe ser "Original" o "Current". El valor predeterminado es "Current".

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.4 ]

getTextRanges(endingMarks, trimSpacing)

Obtiene los intervalos de texto del control de contenido mediante signos de puntuación u otras marcas finales.

getTextRanges(endingMarks: string[], trimSpacing?: boolean): Word.RangeCollection;

Parámetros

endingMarks

string[]

Obligatorio. Los signos de puntuación y/u otras marcas finales como una matriz de cadenas.

trimSpacing

boolean

Opcional. Indica si se deben recortar los caracteres de espaciado (espacios, tabulaciones, saltos de columna y marcas finales de párrafo) desde el principio y el final de los intervalos devueltos en la colección de intervalos. El valor predeterminado es false, lo que indica que los caracteres de espaciado al principio y al final de los intervalos se incluyen en la colección de intervalos.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.3 ]

getTrackedChanges()

Obtiene la colección de los objetos TrackedChange en el control de contenido.

getTrackedChanges(): Word.TrackedChangeCollection;

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.6 ]

insertBreak(breakType, insertLocation)

Inserta un salto en la ubicación especificada del documento principal. Este método no se puede usar con los controles de contenido "RichTextTable", "RichTextTableRow" y "RichTextTableCell".

insertBreak(breakType: Word.BreakType | "Page" | "Next" | "SectionNext" | "SectionContinuous" | "SectionEven" | "SectionOdd" | "Line", insertLocation: Word.InsertLocation.start | Word.InsertLocation.end | Word.InsertLocation.before | Word.InsertLocation.after | "Start" | "End" | "Before" | "After"): void;

Parámetros

breakType

Word.BreakType | "Page" | "Next" | "SectionNext" | "SectionContinuous" | "SectionEven" | "SectionOdd" | "Line"

Obligatorio. Tipo de interrupción.

insertLocation

start | end | before | after | "Start" | "End" | "Before" | "After"

Obligatorio. El valor debe ser "Start", "End", "Before" o "After".

Devoluciones

void

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;
    
    // Queue a command to load the id property for all of content controls.
    contentControls.load('id');
    
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    // We now will have access to the content control collection.
    await context.sync();
    if (contentControls.items.length === 0) {
        console.log('No content control found.');
    }
    else {
        // Queue a command to insert a page break after the first content control.
        contentControls.items[0].insertBreak(Word.BreakType.page, Word.InsertLocation.after);
        
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Inserted a page break after the first content control.');    
    }
});

insertFileFromBase64(base64File, insertLocation)

Inserta un documento en el control de contenido en la ubicación especificada.

insertFileFromBase64(base64File: string, insertLocation: Word.InsertLocation.replace | Word.InsertLocation.start | Word.InsertLocation.end | "Replace" | "Start" | "End"): Word.Range;

Parámetros

base64File

string

Obligatorio. Contenido codificado en Base64 de un archivo .docx.

insertLocation

replace | start | end | "Replace" | "Start" | "End"

Obligatorio. El valor debe ser "Replace", "Start" o "End". 'Replace' no se puede usar con controles de contenido 'RichTextTable' y 'RichTextTableRow'.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Nota: La inserción no se admite si el documento que se está insertando contiene un control ActiveX (probablemente en un campo de formulario). Considere la posibilidad de reemplazar este tipo de campo de formulario por un control de contenido u otra opción adecuada para su escenario.

insertHtml(html, insertLocation)

Inserta HTML en el control de contenido en la ubicación especificada.

insertHtml(html: string, insertLocation: Word.InsertLocation.replace | Word.InsertLocation.start | Word.InsertLocation.end | "Replace" | "Start" | "End"): Word.Range;

Parámetros

html

string

Obligatorio. HTML que se va a insertar en el control de contenido.

insertLocation

replace | start | end | "Replace" | "Start" | "End"

Obligatorio. El valor debe ser "Replace", "Start" o "End". 'Replace' no se puede usar con controles de contenido 'RichTextTable' y 'RichTextTableRow'.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;
    
    // Queue a command to load the id property for all of the content controls.
    contentControls.load('id');
     
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    if (contentControls.items.length === 0) {
        console.log('No content control found.');
    }
    else {
        // Queue a command to put HTML into the contents of the first content control.
        contentControls.items[0].insertHtml(
            '<strong>HTML content inserted into the content control.</strong>',
            'Start');
    
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Inserted HTML in the first content control.');
    }
});

insertInlinePictureFromBase64(base64EncodedImage, insertLocation)

Inserta una imagen incorporada en el control de contenido en la ubicación especificada.

insertInlinePictureFromBase64(base64EncodedImage: string, insertLocation: Word.InsertLocation.replace | Word.InsertLocation.start | Word.InsertLocation.end | "Replace" | "Start" | "End"): Word.InlinePicture;

Parámetros

base64EncodedImage

string

Obligatorio. Imagen codificada en Base64 que se va a insertar en el control de contenido.

insertLocation

replace | start | end | "Replace" | "Start" | "End"

Obligatorio. El valor debe ser "Replace", "Start" o "End". 'Replace' no se puede usar con controles de contenido 'RichTextTable' y 'RichTextTableRow'.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.2 ]

insertOoxml(ooxml, insertLocation)

Inserta OOXML en el control de contenido en la ubicación especificada.

insertOoxml(ooxml: string, insertLocation: Word.InsertLocation.replace | Word.InsertLocation.start | Word.InsertLocation.end | "Replace" | "Start" | "End"): Word.Range;

Parámetros

ooxml

string

Obligatorio. OOXML que se va a insertar en el control de contenido.

insertLocation

replace | start | end | "Replace" | "Start" | "End"

Obligatorio. El valor debe ser "Replace", "Start" o "End". 'Replace' no se puede usar con controles de contenido 'RichTextTable' y 'RichTextTableRow'.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;
    
    // Queue a command to load the id property for all of the content controls.
    contentControls.load('id');
     
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    if (contentControls.items.length === 0) {
        console.log('No content control found.');
    }
    else {
        // Queue a command to put OOXML into the contents of the first content control.
        contentControls.items[0].insertOoxml("<pkg:package xmlns:pkg='http://schemas.microsoft.com/office/2006/xmlPackage'><pkg:part pkg:name='/_rels/.rels' pkg:contentType='application/vnd.openxmlformats-package.relationships+xml' pkg:padding='512'><pkg:xmlData><Relationships xmlns='http://schemas.openxmlformats.org/package/2006/relationships'><Relationship Id='rId1' Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument' Target='word/document.xml'/></Relationships></pkg:xmlData></pkg:part><pkg:part pkg:name='/word/document.xml' pkg:contentType='application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml'><pkg:xmlData><w:document xmlns:w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' ><w:body><w:p><w:pPr><w:spacing w:before='360' w:after='0' w:line='480' w:lineRule='auto'/><w:rPr><w:color w:val='70AD47' w:themeColor='accent6'/><w:sz w:val='28'/></w:rPr></w:pPr><w:r><w:rPr><w:color w:val='70AD47' w:themeColor='accent6'/><w:sz w:val='28'/></w:rPr><w:t>This text has formatting directly applied to achieve its font size, color, line spacing, and paragraph spacing.</w:t></w:r></w:p></w:body></w:document></pkg:xmlData></pkg:part></pkg:package>", "End");
    
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Inserted OOXML in the first content control.');
    }
});  

// Read "Create better add-ins for Word with Office Open XML" for guidance on working with OOXML.
// https://learn.microsoft.com/office/dev/add-ins/word/create-better-add-ins-for-word-with-office-open-xml

insertParagraph(paragraphText, insertLocation)

Inserta un párrafo en la ubicación especificada.

insertParagraph(paragraphText: string, insertLocation: Word.InsertLocation.start | Word.InsertLocation.end | Word.InsertLocation.before | Word.InsertLocation.after | "Start" | "End" | "Before" | "After"): Word.Paragraph;

Parámetros

paragraphText

string

Obligatorio. Texto de párrafo que se va a insertar.

insertLocation

start | end | before | after | "Start" | "End" | "Before" | "After"

Obligatorio. El valor debe ser "Start", "End", "Before" o "After". 'Before' y 'After' no se pueden usar con los controles de contenido 'RichTextTable', 'RichTextTableRow' y 'RichTextTableCell'.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;
    
    // Queue a command to load the id property for all of the content controls.
    contentControls.load('id');
     
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    if (contentControls.items.length === 0) {
        console.log('No content control found.');
    }
    else {
        // Queue a command to insert a paragraph after the first content control.
        contentControls.items[0].insertParagraph('Text of the inserted paragraph.', 'After');
    
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Inserted a paragraph after the first content control.');
    }
});  

insertTable(rowCount, columnCount, insertLocation, values)

Inserta una tabla con el número especificado de filas y columnas en, o junto a, un control de contenido.

insertTable(rowCount: number, columnCount: number, insertLocation: Word.InsertLocation.start | Word.InsertLocation.end | Word.InsertLocation.before | Word.InsertLocation.after | "Start" | "End" | "Before" | "After", values?: string[][]): Word.Table;

Parámetros

rowCount

number

Obligatorio. Número de filas de la tabla.

columnCount

number

Obligatorio. Número de columnas de la tabla.

insertLocation

start | end | before | after | "Start" | "End" | "Before" | "After"

Obligatorio. El valor debe ser "Start", "End", "Before" o "After". 'Before' y 'After' no se pueden usar con los controles de contenido 'RichTextTable', 'RichTextTableRow' y 'RichTextTableCell'.

values

string[][]

Matriz 2D opcional. Si se especifican las cadenas correspondientes en la matriz, se rellenan las celdas.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.3 ]

insertText(text, insertLocation)

Inserta texto en el control de contenido en la ubicación especificada.

insertText(text: string, insertLocation: Word.InsertLocation.replace | Word.InsertLocation.start | Word.InsertLocation.end | "Replace" | "Start" | "End"): Word.Range;

Parámetros

text

string

Obligatorio. Texto que se va a insertar en el control de contenido.

insertLocation

replace | start | end | "Replace" | "Start" | "End"

Obligatorio. El valor debe ser "Replace", "Start" o "End". 'Replace' no se puede usar con controles de contenido 'RichTextTable' y 'RichTextTableRow'.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;
    
    // Queue a command to load the id property for all of the content controls.
    contentControls.load('id');
     
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    if (contentControls.items.length === 0) {
        console.log('No content control found.');
    }
    else {
        // Queue a command to replace text in the first content control.
        contentControls.items[0].insertText('Replaced text in the first content control.', 'Replace');
    
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Replaced text in the first content control.');
    }
});  

// The Silly stories add-in sample shows how to use the insertText method.
// https://aka.ms/sillystorywordaddin

load(options)

Pone en cola un comando para cargar las propiedades especificadas del objeto. Debe llamar a context.sync() antes de leer las propiedades.

load(options?: Word.Interfaces.ContentControlLoadOptions): Word.ContentControl;

Parámetros

options
Word.Interfaces.ContentControlLoadOptions

Proporciona opciones para las propiedades del objeto que se van a cargar.

Devoluciones

Ejemplos

// Load all of the content control properties
// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;
    
    // Queue a command to load the id property for all of the content controls.
    contentControls.load('id');
     
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    if (contentControls.items.length === 0) {
        console.log('No content control found.');
    } else {
        // Queue a command to load the properties on the first content control.
        contentControls.items[0].load(  'appearance,' +
                                        'cannotDelete,' +
                                        'cannotEdit,' +
                                        'id,' +
                                        'placeHolderText,' +
                                        'removeWhenEdited,' +
                                        'title,' +
                                        'text,' +
                                        'type,' +
                                        'style,' +
                                        'tag,' +
                                        'font/size,' +
                                        'font/name,' +
                                        'font/color');             
    
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Property values of the first content control:' + 
            '   ----- appearance: ' + contentControls.items[0].appearance + 
            '   ----- cannotDelete: ' + contentControls.items[0].cannotDelete +
            '   ----- cannotEdit: ' + contentControls.items[0].cannotEdit +
            '   ----- color: ' + contentControls.items[0].color +
            '   ----- id: ' + contentControls.items[0].id +
            '   ----- placeHolderText: ' + contentControls.items[0].placeholderText +
            '   ----- removeWhenEdited: ' + contentControls.items[0].removeWhenEdited +
            '   ----- title: ' + contentControls.items[0].title +
            '   ----- text: ' + contentControls.items[0].text +
            '   ----- type: ' + contentControls.items[0].type +
            '   ----- style: ' + contentControls.items[0].style +
            '   ----- tag: ' + contentControls.items[0].tag +
            '   ----- font size: ' + contentControls.items[0].font.size +
            '   ----- font name: ' + contentControls.items[0].font.name +
            '   ----- font color: ' + contentControls.items[0].font.color);
    }
});  

load(propertyNames)

Pone en cola un comando para cargar las propiedades especificadas del objeto. Debe llamar a context.sync() antes de leer las propiedades.

load(propertyNames?: string | string[]): Word.ContentControl;

Parámetros

propertyNames

string | string[]

Una cadena delimitada por comas o una matriz de cadenas que especifican las propiedades que se van a cargar.

Devoluciones

load(propertyNamesAndPaths)

Pone en cola un comando para cargar las propiedades especificadas del objeto. Debe llamar a context.sync() antes de leer las propiedades.

load(propertyNamesAndPaths?: {
            select?: string;
            expand?: string;
        }): Word.ContentControl;

Parámetros

propertyNamesAndPaths

{ select?: string; expand?: string; }

propertyNamesAndPaths.select es una cadena delimitada por comas que especifica las propiedades que se van a cargar y propertyNamesAndPaths.expand es una cadena delimitada por comas que especifica las propiedades de navegación que se van a cargar.

Devoluciones

resetState()

Nota

Esta API se ofrece a los desarrolladores como versión preliminar y puede cambiar en función de los comentarios que recibamos. No utilice esta API en un entorno de producción.

Restablece el estado del control de contenido.

resetState(): void;

Devoluciones

void

Comentarios

[ Conjunto de API: WordApi BETA (SOLO VERSIÓN PRELIMINAR) ]

search(searchText, searchOptions)

Realiza una búsqueda con las SearchOptions especificadas en el ámbito del objeto de control de contenido. Los resultados de la búsqueda son una colección de objetos de intervalo.

search(searchText: string, searchOptions?: Word.SearchOptions | {
            ignorePunct?: boolean;
            ignoreSpace?: boolean;
            matchCase?: boolean;
            matchPrefix?: boolean;
            matchSuffix?: boolean;
            matchWholeWord?: boolean;
            matchWildcards?: boolean;
        }): Word.RangeCollection;

Parámetros

searchText

string

Obligatorio. Texto de búsqueda.

searchOptions

Word.SearchOptions | { ignorePunct?: boolean; ignoreSpace?: boolean; matchCase?: boolean; matchPrefix?: boolean; matchSuffix?: boolean; matchWholeWord?: boolean; matchWildcards?: boolean; }

Opcional. Opciones de la búsqueda.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.1 ]

Ejemplos

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the content controls collection.
    const contentControls = context.document.contentControls;
    
    // Queue a command to load the id property for all of the content controls.
    contentControls.load('id');
     
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    if (contentControls.items.length === 0) {
        console.log('No content control found.');
    }
    else {
        // Queue a command to select the first content control.
        contentControls.items[0].select();
    
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Selected the first content control.');
    }
});  

select(selectionMode)

Selecciona el control de contenido. Esto hace que Word se desplace hasta la selección.

select(selectionMode?: Word.SelectionMode): void;

Parámetros

selectionMode
Word.SelectionMode

Opcional. El modo de selección debe ser "Seleccionar", "Iniciar" o "Finalizar". 'Select' es el valor predeterminado.

Devoluciones

void

Comentarios

[ Conjunto de API: WordApi 1.1 ]

select(selectionModeString)

Selecciona el control de contenido. Esto hace que Word se desplace hasta la selección.

select(selectionModeString?: "Select" | "Start" | "End"): void;

Parámetros

selectionModeString

"Select" | "Start" | "End"

Opcional. El modo de selección debe ser "Seleccionar", "Iniciar" o "Finalizar". 'Select' es el valor predeterminado.

Devoluciones

void

Comentarios

[ Conjunto de API: WordApi 1.1 ]

set(properties, options)

Establece varias propiedades de un objeto al mismo tiempo. Puede pasar un objeto sin formato con las propiedades adecuadas u otro objeto de API del mismo tipo.

set(properties: Interfaces.ContentControlUpdateData, options?: OfficeExtension.UpdateOptions): void;

Parámetros

properties
Word.Interfaces.ContentControlUpdateData

Objeto JavaScript con propiedades estructuradas isomórficamente con las propiedades del objeto al que se llama al método.

options
OfficeExtension.UpdateOptions

Proporciona una opción para suprimir errores si el objeto properties intenta establecer propiedades de solo lectura.

Devoluciones

void

Ejemplos

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/10-content-controls/insert-and-change-content-controls.yaml

// Adds title and colors to odd and even content controls and changes their appearance.
await Word.run(async (context) => {
  // Get the complete sentence (as range) associated with the insertion point.
  let evenContentControls = context.document.contentControls.getByTag("even");
  let oddContentControls = context.document.contentControls.getByTag("odd");
  evenContentControls.load("length");
  oddContentControls.load("length");

  await context.sync();

  for (let i = 0; i < evenContentControls.items.length; i++) {
    // Change a few properties and append a paragraph
    evenContentControls.items[i].set({
      color: "red",
      title: "Odd ContentControl #" + (i + 1),
      appearance: Word.ContentControlAppearance.tags
    });
    evenContentControls.items[i].insertParagraph("This is an odd content control", "End");
  }

  for (let j = 0; j < oddContentControls.items.length; j++) {
    // Change a few properties and append a paragraph
    oddContentControls.items[j].set({
      color: "green",
      title: "Even ContentControl #" + (j + 1),
      appearance: "Tags"
    });
    oddContentControls.items[j].insertHtml("This is an <b>even</b> content control", "End");
  }

  await context.sync();
});

set(properties)

Establece varias propiedades en el objeto al mismo tiempo, en función de un objeto cargado existente.

set(properties: Word.ContentControl): void;

Parámetros

properties
Word.ContentControl

Devoluciones

void

setState(contentControlState)

Nota

Esta API se ofrece a los desarrolladores como versión preliminar y puede cambiar en función de los comentarios que recibamos. No utilice esta API en un entorno de producción.

Establece el estado del control de contenido.

setState(contentControlState: Word.ContentControlState): void;

Parámetros

contentControlState
Word.ContentControlState

Estado que se va a establecer.

Devoluciones

void

Comentarios

[ Conjunto de API: WordApi BETA (SOLO VERSIÓN PRELIMINAR) ]

setState(contentControlStateString)

Nota

Esta API se ofrece a los desarrolladores como versión preliminar y puede cambiar en función de los comentarios que recibamos. No utilice esta API en un entorno de producción.

Establece el estado del control de contenido.

setState(contentControlStateString: "Error" | "Warning"): void;

Parámetros

contentControlStateString

"Error" | "Warning"

Estado que se va a establecer.

Devoluciones

void

Comentarios

[ Conjunto de API: WordApi BETA (SOLO VERSIÓN PRELIMINAR) ]

split(delimiters, multiParagraphs, trimDelimiters, trimSpacing)

Divide el control de contenido en intervalos secundarios mediante delimitadores.

split(delimiters: string[], multiParagraphs?: boolean, trimDelimiters?: boolean, trimSpacing?: boolean): Word.RangeCollection;

Parámetros

delimiters

string[]

Obligatorio. Los delimitadores como una matriz de cadenas.

multiParagraphs

boolean

Opcional. Indica si un intervalo secundario devuelto puede abarcar varios párrafos. El valor predeterminado es false, lo que indica que los límites de párrafo también se usan como delimitadores.

trimDelimiters

boolean

Opcional. Indica si se deben recortar los delimitadores de los intervalos de la colección de intervalos. El valor predeterminado es false, lo que indica que los delimitadores se incluyen en los intervalos devueltos en la colección de intervalos.

trimSpacing

boolean

Opcional. Indica si se deben recortar los caracteres de espaciado (espacios, tabulaciones, saltos de columna y marcas finales de párrafo) desde el principio y el final de los intervalos devueltos en la colección de intervalos. El valor predeterminado es false, lo que indica que los caracteres de espaciado al principio y al final de los intervalos se incluyen en la colección de intervalos.

Devoluciones

Comentarios

[ Conjunto de API: WordApi 1.3 ]

toJSON()

Invalida el método JavaScript toJSON() para proporcionar una salida más útil cuando se pasa un objeto de API a JSON.stringify(). (JSON.stringifya su vez, llama al toJSON método del objeto que se le pasa). Mientras que el Word original. El objeto ContentControl es un objeto de API, el toJSON método devuelve un objeto JavaScript sin formato (escrito como Word.Interfaces.ContentControlData) que contiene copias superficiales de las propiedades secundarias cargadas del objeto original.

toJSON(): Word.Interfaces.ContentControlData;

Devoluciones

track()

Realiza un seguimiento del objeto de ajuste automático según cambios adyacentes en el documento. Esta llamada es una abreviatura para context.trackedObjects.add(thisObject). Si usa este objeto entre .sync llamadas y fuera de la ejecución secuencial de un lote ".run" y obtiene un error "InvalidObjectPath" al establecer una propiedad o invocar un método en el objeto, debe agregar el objeto a la colección de objetos de seguimiento cuando se creó el objeto por primera vez. Si este objeto forma parte de una colección, también debe realizar un seguimiento de la colección primaria.

track(): Word.ContentControl;

Devoluciones

untrack()

Libere la memoria asociada a este objeto, si se ha realizado un seguimiento de él anteriormente. Esta llamada es abreviada para context.trackedObjects.remove(thisObject). Tener muchos objetos marcados ralentiza la aplicación host, así que debe recordar liberar los objetos que agregue cuando haya terminado con ellos. Tendrá que llamar context.sync() a antes de que la versión de memoria surta efecto.

untrack(): Word.ContentControl;

Devoluciones

Detalles del evento

onCommentAdded

Nota

Esta API se ofrece a los desarrolladores como versión preliminar y puede cambiar en función de los comentarios que recibamos. No utilice esta API en un entorno de producción.

Se produce cuando se agregan nuevos comentarios.

readonly onCommentAdded: OfficeExtension.EventHandlers<Word.CommentEventArgs>;

Tipo de evento

Comentarios

[ Conjunto de API: WordApi BETA (SOLO VERSIÓN PRELIMINAR) ]

onCommentChanged

Nota

Esta API se ofrece a los desarrolladores como versión preliminar y puede cambiar en función de los comentarios que recibamos. No utilice esta API en un entorno de producción.

Se produce cuando se cambia un comentario o su respuesta.

readonly onCommentChanged: OfficeExtension.EventHandlers<Word.CommentEventArgs>;

Tipo de evento

Comentarios

[ Conjunto de API: WordApi BETA (SOLO VERSIÓN PRELIMINAR) ]

onCommentDeselected

Nota

Esta API se ofrece a los desarrolladores como versión preliminar y puede cambiar en función de los comentarios que recibamos. No utilice esta API en un entorno de producción.

Se produce cuando se anula la selección de un comentario.

readonly onCommentDeselected: OfficeExtension.EventHandlers<Word.CommentEventArgs>;

Tipo de evento

Comentarios

[ Conjunto de API: WordApi BETA (SOLO VERSIÓN PRELIMINAR) ]

onCommentSelected

Nota

Esta API se ofrece a los desarrolladores como versión preliminar y puede cambiar en función de los comentarios que recibamos. No utilice esta API en un entorno de producción.

Se produce cuando se selecciona un comentario.

readonly onCommentSelected: OfficeExtension.EventHandlers<Word.CommentEventArgs>;

Tipo de evento

Comentarios

[ Conjunto de API: WordApi BETA (SOLO VERSIÓN PRELIMINAR) ]

onDataChanged

Se produce cuando se cambian los datos dentro del control de contenido. Para obtener el nuevo texto, cargue este control de contenido en el controlador. Para obtener el texto antiguo, no lo cargue.

readonly onDataChanged: OfficeExtension.EventHandlers<Word.ContentControlDataChangedEventArgs>;

Tipo de evento

Comentarios

[ Conjunto de API: WordApi 1.5 ]

Ejemplos

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/10-content-controls/content-control-ondatachanged-event.yaml

await Word.run(async (context) => {
  const contentControls = context.document.contentControls;
  contentControls.load("items");
  await context.sync();

  // Register the onDataChanged event handler on each content control.
  if (contentControls.items.length === 0) {
    console.log("There aren't any content controls in this document so can't register event handlers.");
  } else {
    for (let i = 0; i < contentControls.items.length; i++) {
      eventContexts[i] = contentControls.items[i].onDataChanged.add(contentControlDataChanged);
      contentControls.items[i].track();
    }

    await context.sync();

    console.log("Added event handlers for when data is changed in content controls.");
  }
});

...

async function contentControlDataChanged(event: Word.ContentControlDataChangedEventArgs) {
  await Word.run(async (context) => {
    console.log(`${event.eventType} event detected. IDs of content controls where data was changed:`);
    console.log(event.ids);
  });
}

onDeleted

Se produce cuando se elimina el control de contenido. No cargue este control de contenido en el controlador; de lo contrario, no podrá obtener sus propiedades originales.

readonly onDeleted: OfficeExtension.EventHandlers<Word.ContentControlDeletedEventArgs>;

Tipo de evento

Comentarios

[ Conjunto de API: WordApi 1.5 ]

Ejemplos

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/10-content-controls/content-control-ondeleted-event.yaml

await Word.run(async (context) => {
  const contentControls = context.document.contentControls;
  contentControls.load("items");
  await context.sync();

  // Register the onDeleted event handler on each content control.
  if (contentControls.items.length === 0) {
    console.log("There aren't any content controls in this document so can't register event handlers.");
  } else {
    for (let i = 0; i < contentControls.items.length; i++) {
      eventContexts[i] = contentControls.items[i].onDeleted.add(contentControlDeleted);
      contentControls.items[i].track();
    }

    await context.sync();

    console.log("Added event handlers for when content controls are deleted.");
  }
});

...

async function contentControlDeleted(event: Word.ContentControlDeletedEventArgs) {
  await Word.run(async (context) => {
    console.log(`${event.eventType} event detected. IDs of content controls that were deleted:`);
    console.log(event.ids);
  });
}

onEntered

Se produce cuando se escribe el control de contenido.

readonly onEntered: OfficeExtension.EventHandlers<Word.ContentControlEnteredEventArgs>;

Tipo de evento

Comentarios

[ Conjunto de API: WordApi 1.5 ]

Ejemplos

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/10-content-controls/content-control-onentered-event.yaml

await Word.run(async (context) => {
  const contentControls = context.document.contentControls;
  contentControls.load("items");
  await context.sync();

  // Register the onEntered event handler on each content control.
  if (contentControls.items.length === 0) {
    console.log("There aren't any content controls in this document so can't register event handlers.");
  } else {
    for (let i = 0; i < contentControls.items.length; i++) {
      eventContexts[i] = contentControls.items[i].onEntered.add(contentControlEntered);
      contentControls.items[i].track();
    }

    await context.sync();

    console.log("Added event handlers for when the cursor is placed in content controls.");
  }
});

...

async function contentControlEntered(event: Word.ContentControlEnteredEventArgs) {
  await Word.run(async (context) => {
    console.log(`${event.eventType} event detected. ID of content control that was entered: ${event.ids[0]}`);
  });
}

onExited

Se produce cuando se cierra el control de contenido, por ejemplo, cuando el cursor sale del control de contenido.

readonly onExited: OfficeExtension.EventHandlers<Word.ContentControlExitedEventArgs>;

Tipo de evento

Comentarios

[ Conjunto de API: WordApi 1.5 ]

Ejemplos

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/10-content-controls/content-control-onexited-event.yaml

await Word.run(async (context) => {
  const contentControls = context.document.contentControls;
  contentControls.load("items");
  await context.sync();

  // Register the onExited event handler on each content control.
  if (contentControls.items.length === 0) {
    console.log("There aren't any content controls in this document so can't register event handlers.");
  } else {
    for (let i = 0; i < contentControls.items.length; i++) {
      eventContexts[i] = contentControls.items[i].onExited.add(contentControlExited);
      contentControls.items[i].track();
    }

    await context.sync();

    console.log("Added event handlers for when the cursor is removed from within content controls.");
  }
});

...

async function contentControlExited(event: Word.ContentControlExitedEventArgs) {
  await Word.run(async (context) => {
    console.log(`${event.eventType} event detected. ID of content control that was exited: ${event.ids[0]}`);
  });
}

onSelectionChanged

Se produce cuando se cambia la selección dentro del control de contenido.

readonly onSelectionChanged: OfficeExtension.EventHandlers<Word.ContentControlSelectionChangedEventArgs>;

Tipo de evento

Comentarios

[ Conjunto de API: WordApi 1.5 ]

Ejemplos

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/10-content-controls/content-control-onselectionchanged-event.yaml

await Word.run(async (context) => {
  const contentControls = context.document.contentControls;
  contentControls.load("items");
  await context.sync();

  if (contentControls.items.length === 0) {
    console.log("There aren't any content controls in this document so can't register event handlers.");
  } else {
    for (let i = 0; i < contentControls.items.length; i++) {
      eventContexts[i] = contentControls.items[i].onSelectionChanged.add(contentControlSelectionChanged);
      contentControls.items[i].track();
    }

    await context.sync();

    console.log("Added event handlers for when selections are changed in content controls.");
  }
});

...

async function contentControlSelectionChanged(event: Word.ContentControlSelectionChangedEventArgs) {
  await Word.run(async (context) => {
    console.log(`${event.eventType} event detected. IDs of content controls where selection was changed:`);
    console.log(event.ids);
  });
}