Поделиться через


Word.ContentControl class

Представляет элемент управления содержимым. Элементы управления содержимым — это связанные и, возможно, помеченные фрагменты документа, выполняющие роль контейнеров для определенных типов содержимого. Отдельные элементы управления контентом могут содержать изображения, таблицы или абзацы форматированного текста. В настоящее время поддерживаются только элементы управления содержимым форматированного текста, обычного текста и флажка.

Extends

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Свойства

appearance

Указывает внешний вид элемента управления содержимым. Значение может быть 'BoundingBox', 'Tags' или 'Hidden'.

cannotDelete

Указывает значение, указывающее, может ли пользователь удалить элемент управления содержимым. Является взаимоисключающим со свойством removeWhenEdited.

cannotEdit

Указывает значение, указывающее, может ли пользователь изменять содержимое элемента управления содержимым.

checkboxContentControl

Возвращает данные элемента управления содержимым, если его тип — CheckBox. null В противном случае.

color

Задает цвет элемента управления содержимым. Цвет указывается в формате "#RRGGBB" или с помощью имени цвета.

comboBoxContentControl

Возвращает данные элемента управления содержимым, если его тип — "ComboBox". null В противном случае.

contentControls

Получает коллекцию объектов элементов управления содержимым в элементе управления содержимым.

context

Контекст запроса, связанный с объектом . Это соединяет процесс надстройки с процессом ведущего приложения Office.

dropDownListContentControl

Возвращает данные элемента управления содержимым, если его тип — DropDownList. null В противном случае.

endnotes

Возвращает коллекцию концевых сносок в элементе управления содержимым.

fields

Возвращает коллекцию объектов полей в элементе управления содержимым.

font

Получает текстовый формат элемента управления содержимым. Используйте это свойство для получения и установки имени, размера, цвета и других свойств шрифта.

footnotes

Возвращает коллекцию сносок в элементе управления содержимым.

id

Возвращает целое число, представляющее собой идентификатор элемента управления контентом.

inlinePictures

Возвращает коллекцию объектов InlinePicture в элементе управления содержимым. Коллекция не включает плавающие изображения.

lists

Возвращает коллекцию объектов списков в элементе управления содержимым.

paragraphs

Возвращает коллекцию объектов абзаца в элементе управления содержимым.

parentBody

Возвращает родительский текст элемента управления содержимым.

parentContentControl

Получает элемент управления содержимым, содержащий элемент управления содержимым. Выдает ошибку ItemNotFound , если родительского элемента управления содержимым нет.

parentContentControlOrNullObject

Получает элемент управления содержимым, содержащий элемент управления содержимым. Если родительского элемента управления содержимым нет, этот метод вернет объект со свойством isNullObjecttrue. Дополнительные сведения см. в разделе Методы и свойства *OrNullObject.

parentTable

Возвращает таблицу, содержащую элемент управления содержимым. Выдает ошибку ItemNotFound , если она не содержится в таблице.

parentTableCell

Возвращает ячейку таблицы, содержащую элемент управления содержимым. Выдает ошибку ItemNotFound , если она не содержится в ячейке таблицы.

parentTableCellOrNullObject

Возвращает ячейку таблицы, содержащую элемент управления содержимым. Если он не содержится в ячейке таблицы, этот метод вернет объект со свойством , для него isNullObject задано значение true. Дополнительные сведения см. в разделе Методы и свойства *OrNullObject.

parentTableOrNullObject

Возвращает таблицу, содержащую элемент управления содержимым. Если он не содержится в таблице, то этот метод вернет объект со свойством isNullObjecttrue. Дополнительные сведения см. в разделе Методы и свойства *OrNullObject.

placeholderText

Задает замещающий текст элемента управления содержимым. Если элемент управления содержимым пуст, отображается затемненный текст.

removeWhenEdited

Указывает значение, указывающее, удаляется ли элемент управления содержимым после его изменения. Является взаимоисключающим со свойством cannotDelete.

style

Задает имя стиля для элемента управления содержимым. Используйте это свойство для пользовательских стилей и локализованных имен стилей. Чтобы использовать встроенные стили, поддерживающие несколько языковых стандартов, применяйте свойство styleBuiltIn.

styleBuiltIn

Задает встроенное имя стиля для элемента управления содержимым. Используйте это свойство для встроенных стилей, поддерживающих несколько языковых стандартов. Чтобы использовать пользовательские стили или локализованные имена стилей, применяйте свойство style.

subtype

Возвращает подтип элемента управления содержимым. Подтип может быть "RichTextInline", "RichTextParagraphs", "RichTextTableCell", "RichTextTableRow" и "RichTextTable" для элементов управления содержимым форматированного текста, "PlainTextInline" и "PlainTextParagraph" для элементов управления содержимым в виде обычного текста или "CheckBox" для элементов управления содержимым флажками.

tables

Возвращает коллекцию объектов таблиц в элементе управления содержимым.

tag

Указывает тег для идентификации элемента управления содержимым.

text

Возвращает текст элемента управления содержимым.

title

Задает заголовок элемента управления содержимым.

type

Получает тип элемента управления содержимым. В настоящее время поддерживаются только элементы управления содержимым с форматированным текстом, обычным текстом и содержимым флажков.

Методы

clear()

Очищает содержимое элемента управления содержимым. Пользователь может отменить операцию для очищенного содержимого.

delete(keepContent)

Удаляет элемент управления содержимым и его содержимое. Если keepContent задано значение true, содержимое не удаляется.

getComments()

Возвращает комментарии, связанные с элементом управления содержимым.

getContentControls(options)

Возвращает поддерживаемые в данный момент дочерние элементы управления содержимым в этом элементе управления содержимым.

getHtml()

Возвращает HTML-представление объекта элемента управления содержимым. При отображении на веб-странице или в средстве просмотра HTML форматирование будет близко, но не точно совпадает с форматированием документа. Этот метод не возвращает один и тот же HTML-код для одного документа на разных платформах (Windows, Mac, Word в Интернете и т. д.). Если вам нужна точную точность или согласованность на разных платформах, используйте ContentControl.getOoxml() и преобразуйте возвращенный XML-код в HTML.

getOoxml()

Возвращает OOXML-представление объекта элемента управления содержимым.

getRange(rangeLocation)

Возвращает весь элемент управления содержимым (либо его начальную или конечную точку) в виде диапазона.

getReviewedText(changeTrackingVersion)

Возвращает проверенный текст на основе выбора ChangeTrackingVersion.

getReviewedText(changeTrackingVersionString)

Возвращает проверенный текст на основе выбора ChangeTrackingVersion.

getTextRanges(endingMarks, trimSpacing)

Получает текстовые диапазоны в элементе управления содержимым с помощью знаков препинания и (или) других конечных знаков.

getTrackedChanges()

Возвращает коллекцию объектов TrackedChange в элементе управления содержимым.

insertBreak(breakType, insertLocation)

Вставляет разрыв в указанном расположении в основном документе. Этот метод нельзя использовать с элементами управления содержимым RichTextTable, RichTextTableRow и RichTextTableCell.

insertFileFromBase64(base64File, insertLocation)

Вставляет документ в элемент управления содержимым в указанном расположении.

insertHtml(html, insertLocation)

Вставляет HTML-код в элемент управления содержимым в указанном расположении.

insertInlinePictureFromBase64(base64EncodedImage, insertLocation)

Вставляет встроенный рисунок в элемент управления содержимым в указанном расположении.

insertOoxml(ooxml, insertLocation)

Вставляет OOXML в элемент управления содержимым в указанном расположении.

insertParagraph(paragraphText, insertLocation)

Вставляет абзац в указанном расположении.

insertTable(rowCount, columnCount, insertLocation, values)

Вставляет таблицу с указанным количеством строк и столбцов в элемент управления содержимым или рядом с ним.

insertText(text, insertLocation)

Вставляет текст в элемент управления содержимым в указанном расположении.

load(options)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

load(propertyNames)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

load(propertyNamesAndPaths)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

search(searchText, searchOptions)

Выполняет поиск с указанным SearchOptions на область объекта элемента управления содержимым. Результат поиска — это коллекция объектов диапазона.

select(selectionMode)

Выбирает элемент управления контентом. При этом Word переходит к выделенному фрагменту.

select(selectionModeString)

Выбирает элемент управления контентом. При этом Word переходит к выделенному фрагменту.

set(properties, options)

Задает несколько свойств объекта одновременно. Можно передать обычный объект с соответствующими свойствами или другой объект API того же типа.

set(properties)

Задает несколько свойств объекта одновременно на основе существующего загруженного объекта.

split(delimiters, multiParagraphs, trimDelimiters, trimSpacing)

Разделяет элемент управления содержимым на дочерние диапазоны с помощью разделителей.

toJSON()

Переопределяет метод JavaScript toJSON() , чтобы обеспечить более полезные выходные данные при передаче объекта API в JSON.stringify(). (JSON.stringifyв свою очередь вызывает toJSON метод переданного ему объекта.) В то время как исходный Word.ContentControl объект является объектом API, toJSON метод возвращает обычный объект JavaScript (типизированный как Word.Interfaces.ContentControlData), который содержит неглубокие копии всех загруженных дочерних свойств из исходного объекта.

track()

Отслеживает объект для автоматической корректировки с учетом окружающих изменений в документе. Этот вызов является сокращением для context.trackedObjects.add(thisObject). Если вы используете этот объект в вызовах .sync и вне последовательного выполнения пакета .run и получаете ошибку InvalidObjectPath при задании свойства или вызове метода для объекта, необходимо добавить объект в отслеживаемую коллекцию объектов при первом создании объекта. Если этот объект является частью коллекции, следует также отслеживать родительскую коллекцию.

untrack()

Освобождает память, связанную с этим объектом, если он ранее отслеживался. Этот вызов является сокращенным для context.trackedObjects.remove(thisObject). Наличие большого количества отслеживаемых объектов замедляет ведущее приложение, поэтому не забывайте освобождать любые добавленные объекты после завершения их использования. Вызов потребуется выполнить context.sync() до того, как выпуск памяти вступит в силу.

События

onDataChanged

Происходит при изменении данных в элементе управления содержимым. Чтобы получить новый текст, загрузите этот элемент управления содержимым в обработчик. Чтобы получить старый текст, не загружайте его.

onDeleted

Происходит при удалении элемента управления содержимым. Не загружайте этот элемент управления содержимым в обработчик, в противном случае вы не сможете получить его исходные свойства.

onEntered

Происходит при вводе элемента управления содержимым.

onExited

Происходит при выходе из элемента управления содержимым, например при выходе курсора из элемента управления содержимым.

onSelectionChanged

Происходит при изменении выделения в элементе управления содержимым.

Сведения о свойстве

appearance

Указывает внешний вид элемента управления содержимым. Значение может быть 'BoundingBox', 'Tags' или 'Hidden'.

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

Значение свойства

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

Комментарии

[ Набор API: WordApi 1.1 ]

cannotDelete

Указывает значение, указывающее, может ли пользователь удалить элемент управления содержимым. Является взаимоисключающим со свойством removeWhenEdited.

cannotDelete: boolean;

Значение свойства

boolean

Комментарии

[ Набор API: WordApi 1.1 ]

cannotEdit

Указывает значение, указывающее, может ли пользователь изменять содержимое элемента управления содержимым.

cannotEdit: boolean;

Значение свойства

boolean

Комментарии

[ Набор API: WordApi 1.1 ]

checkboxContentControl

Возвращает данные элемента управления содержимым, если его тип — CheckBox. null В противном случае.

readonly checkboxContentControl: Word.CheckboxContentControl;

Значение свойства

Комментарии

[ Набор API: WordApi 1.7 ]

Примеры

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

// Toggles the isChecked property of the first checkbox content control found in the selection.
await Word.run(async (context) => {
  const selectedRange: Word.Range = context.document.getSelection();
  let selectedContentControl = selectedRange
    .getContentControls({
      types: [Word.ContentControlType.checkBox]
    })
    .getFirstOrNullObject();
  selectedContentControl.load("id,checkboxContentControl/isChecked");

  await context.sync();

  if (selectedContentControl.isNullObject) {
    const parentContentControl: Word.ContentControl = selectedRange.parentContentControl;
    parentContentControl.load("id,type,checkboxContentControl/isChecked");
    await context.sync();

    if (parentContentControl.isNullObject || parentContentControl.type !== Word.ContentControlType.checkBox) {
      console.warn("No checkbox content control is currently selected.");
      return;
    } else {
      selectedContentControl = parentContentControl;
    }
  }

  const isCheckedBefore = selectedContentControl.checkboxContentControl.isChecked;
  console.log("isChecked state before:", `id: ${selectedContentControl.id} ... isChecked: ${isCheckedBefore}`);
  selectedContentControl.checkboxContentControl.isChecked = !isCheckedBefore;
  selectedContentControl.load("id,checkboxContentControl/isChecked");
  await context.sync();

  console.log(
    "isChecked state after:",
    `id: ${selectedContentControl.id} ... isChecked: ${selectedContentControl.checkboxContentControl.isChecked}`
  );
});

color

Задает цвет элемента управления содержимым. Цвет указывается в формате "#RRGGBB" или с помощью имени цвета.

color: string;

Значение свойства

string

Комментарии

[ Набор API: WordApi 1.1 ]

comboBoxContentControl

Возвращает данные элемента управления содержимым, если его тип — "ComboBox". null В противном случае.

readonly comboBoxContentControl: Word.ComboBoxContentControl;

Значение свойства

Комментарии

[ Набор API: WordApi 1.9 ]

Примеры

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

// Adds the provided list item to the first combo box content control in the selection.
await Word.run(async (context) => {
  const listItemText = $("#item-to-add")
    .val()
    .toString()
    .trim();
  const selectedRange: Word.Range = context.document.getSelection();
  let selectedContentControl = selectedRange
    .getContentControls({
      types: [Word.ContentControlType.comboBox]
    })
    .getFirstOrNullObject();
  selectedContentControl.load("id,comboBoxContentControl");
  await context.sync();

  if (selectedContentControl.isNullObject) {
    const parentContentControl: Word.ContentControl = selectedRange.parentContentControl;
    parentContentControl.load("id,type,comboBoxContentControl");
    await context.sync();

    if (parentContentControl.isNullObject || parentContentControl.type !== Word.ContentControlType.comboBox) {
      console.warn("No combo box content control is currently selected.");
      return;
    } else {
      selectedContentControl = parentContentControl;
    }
  }

  selectedContentControl.comboBoxContentControl.addListItem(listItemText);
  await context.sync();

  console.log(`List item added to control with ID ${selectedContentControl.id}: ${listItemText}`);
});

contentControls

Получает коллекцию объектов элементов управления содержимым в элементе управления содержимым.

readonly contentControls: Word.ContentControlCollection;

Значение свойства

Комментарии

[ Набор API: WordApi 1.1 ]

context

Контекст запроса, связанный с объектом . Это соединяет процесс надстройки с процессом ведущего приложения Office.

context: RequestContext;

Значение свойства

dropDownListContentControl

Возвращает данные элемента управления содержимым, если его тип — DropDownList. null В противном случае.

readonly dropDownListContentControl: Word.DropDownListContentControl;

Значение свойства

Комментарии

[ Набор API: WordApi 1.9 ]

Примеры

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

// Adds the provided list item to the first dropdown list content control in the selection.
await Word.run(async (context) => {
  const listItemText = $("#item-to-add")
    .val()
    .toString()
    .trim();
  const selectedRange: Word.Range = context.document.getSelection();
  let selectedContentControl = selectedRange
    .getContentControls({
      types: [Word.ContentControlType.dropDownList]
    })
    .getFirstOrNullObject();
  selectedContentControl.load("id,dropDownListContentControl");
  await context.sync();

  if (selectedContentControl.isNullObject) {
    const parentContentControl: Word.ContentControl = selectedRange.parentContentControl;
    parentContentControl.load("id,type,dropDownListContentControl");
    await context.sync();

    if (parentContentControl.isNullObject || parentContentControl.type !== Word.ContentControlType.dropDownList) {
      console.warn("No dropdown list content control is currently selected.");
      return;
    } else {
      selectedContentControl = parentContentControl;
    }
  }

  selectedContentControl.dropDownListContentControl.addListItem(listItemText);
  await context.sync();

  console.log(`List item added to control with ID ${selectedContentControl.id}: ${listItemText}`);
});

endnotes

Возвращает коллекцию концевых сносок в элементе управления содержимым.

readonly endnotes: Word.NoteItemCollection;

Значение свойства

Комментарии

[ Набор API: WordApi 1.5 ]

fields

Возвращает коллекцию объектов полей в элементе управления содержимым.

readonly fields: Word.FieldCollection;

Значение свойства

Комментарии

[ Набор API: WordApi 1.4 ]

font

Получает текстовый формат элемента управления содержимым. Используйте это свойство для получения и установки имени, размера, цвета и других свойств шрифта.

readonly font: Word.Font;

Значение свойства

Комментарии

[ Набор API: WordApi 1.1 ]

footnotes

Возвращает коллекцию сносок в элементе управления содержимым.

readonly footnotes: Word.NoteItemCollection;

Значение свойства

Комментарии

[ Набор API: WordApi 1.5 ]

id

Возвращает целое число, представляющее собой идентификатор элемента управления контентом.

readonly id: number;

Значение свойства

number

Комментарии

[ Набор API: WordApi 1.1 ]

inlinePictures

Возвращает коллекцию объектов InlinePicture в элементе управления содержимым. Коллекция не включает плавающие изображения.

readonly inlinePictures: Word.InlinePictureCollection;

Значение свойства

Комментарии

[ Набор API: WordApi 1.1 ]

lists

Возвращает коллекцию объектов списков в элементе управления содержимым.

readonly lists: Word.ListCollection;

Значение свойства

Комментарии

[ Набор API: WordApi 1.3 ]

paragraphs

Возвращает коллекцию объектов абзаца в элементе управления содержимым.

readonly paragraphs: Word.ParagraphCollection;

Значение свойства

Комментарии

[ Набор API: WordApi 1.1 ]

Важно! Для наборов требований 1.1 и 1.2 абзацы в таблицах, которые содержатся в этом элементе управления содержимым, не возвращаются. Из набора обязательных элементов 1.3 также возвращаются абзацы в таких таблицах.

parentBody

Возвращает родительский текст элемента управления содержимым.

readonly parentBody: Word.Body;

Значение свойства

Комментарии

[ Набор API: WordApi 1.3 ]

parentContentControl

Получает элемент управления содержимым, содержащий элемент управления содержимым. Выдает ошибку ItemNotFound , если родительского элемента управления содержимым нет.

readonly parentContentControl: Word.ContentControl;

Значение свойства

Комментарии

[ Набор API: WordApi 1.1 ]

parentContentControlOrNullObject

Получает элемент управления содержимым, содержащий элемент управления содержимым. Если родительского элемента управления содержимым нет, этот метод вернет объект со свойством isNullObjecttrue. Дополнительные сведения см. в разделе Методы и свойства *OrNullObject.

readonly parentContentControlOrNullObject: Word.ContentControl;

Значение свойства

Комментарии

[ Набор API: WordApi 1.3 ]

parentTable

Возвращает таблицу, содержащую элемент управления содержимым. Выдает ошибку ItemNotFound , если она не содержится в таблице.

readonly parentTable: Word.Table;

Значение свойства

Комментарии

[ Набор API: WordApi 1.3 ]

parentTableCell

Возвращает ячейку таблицы, содержащую элемент управления содержимым. Выдает ошибку ItemNotFound , если она не содержится в ячейке таблицы.

readonly parentTableCell: Word.TableCell;

Значение свойства

Комментарии

[ Набор API: WordApi 1.3 ]

parentTableCellOrNullObject

Возвращает ячейку таблицы, содержащую элемент управления содержимым. Если он не содержится в ячейке таблицы, этот метод вернет объект со свойством , для него isNullObject задано значение true. Дополнительные сведения см. в разделе Методы и свойства *OrNullObject.

readonly parentTableCellOrNullObject: Word.TableCell;

Значение свойства

Комментарии

[ Набор API: WordApi 1.3 ]

parentTableOrNullObject

Возвращает таблицу, содержащую элемент управления содержимым. Если он не содержится в таблице, то этот метод вернет объект со свойством isNullObjecttrue. Дополнительные сведения см. в разделе Методы и свойства *OrNullObject.

readonly parentTableOrNullObject: Word.Table;

Значение свойства

Комментарии

[ Набор API: WordApi 1.3 ]

placeholderText

Задает замещающий текст элемента управления содержимым. Если элемент управления содержимым пуст, отображается затемненный текст.

placeholderText: string;

Значение свойства

string

Комментарии

[ Набор API: WordApi 1.1 ]

removeWhenEdited

Указывает значение, указывающее, удаляется ли элемент управления содержимым после его изменения. Является взаимоисключающим со свойством cannotDelete.

removeWhenEdited: boolean;

Значение свойства

boolean

Комментарии

[ Набор API: WordApi 1.1 ]

style

Задает имя стиля для элемента управления содержимым. Используйте это свойство для пользовательских стилей и локализованных имен стилей. Чтобы использовать встроенные стили, поддерживающие несколько языковых стандартов, применяйте свойство styleBuiltIn.

style: string;

Значение свойства

string

Комментарии

[ Набор API: WordApi 1.1 ]

styleBuiltIn

Задает встроенное имя стиля для элемента управления содержимым. Используйте это свойство для встроенных стилей, поддерживающих несколько языковых стандартов. Чтобы использовать пользовательские стили или локализованные имена стилей, применяйте свойство 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";

Значение свойства

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"

Комментарии

[ Набор API: WordApi 1.3 ]

subtype

Возвращает подтип элемента управления содержимым. Подтип может быть "RichTextInline", "RichTextParagraphs", "RichTextTableCell", "RichTextTableRow" и "RichTextTable" для элементов управления содержимым форматированного текста, "PlainTextInline" и "PlainTextParagraph" для элементов управления содержимым в виде обычного текста или "CheckBox" для элементов управления содержимым флажками.

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

Значение свойства

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

Комментарии

[ Набор API: WordApi 1.3 ]

tables

Возвращает коллекцию объектов таблиц в элементе управления содержимым.

readonly tables: Word.TableCollection;

Значение свойства

Комментарии

[ Набор API: WordApi 1.3 ]

tag

Указывает тег для идентификации элемента управления содержимым.

tag: string;

Значение свойства

string

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Возвращает текст элемента управления содержимым.

readonly text: string;

Значение свойства

string

Комментарии

[ Набор API: WordApi 1.1 ]

title

Задает заголовок элемента управления содержимым.

title: string;

Значение свойства

string

Комментарии

[ Набор API: WordApi 1.1 ]

type

Получает тип элемента управления содержимым. В настоящее время поддерживаются только элементы управления содержимым с форматированным текстом, обычным текстом и содержимым флажков.

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

Значение свойства

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

Комментарии

[ Набор API: WordApi 1.1 ]

Сведения о методе

clear()

Очищает содержимое элемента управления содержимым. Пользователь может отменить операцию для очищенного содержимого.

clear(): void;

Возвращаемое значение

void

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Удаляет элемент управления содержимым и его содержимое. Если keepContent задано значение true, содержимое не удаляется.

delete(keepContent: boolean): void;

Параметры

keepContent

boolean

Обязательно. Указывает, следует ли удалить содержимое вместе с элементом управления содержимым. Если keepContent задано значение true, содержимое не удаляется.

Возвращаемое значение

void

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

// 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: Word.ContentControlCollection = 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:", contentControls.items[0]);
    contentControls.items[0].delete(false);
    await context.sync();
  }
});

getComments()

Возвращает комментарии, связанные с элементом управления содержимым.

getComments(): Word.CommentCollection;

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.4 ]

getContentControls(options)

Возвращает поддерживаемые в данный момент дочерние элементы управления содержимым в этом элементе управления содержимым.

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

Параметры

options
Word.ContentControlOptions

Необязательный параметр. Параметры, определяющие возвращаемые элементы управления содержимым.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.5 ]

Важно! Если в параметре options указаны определенные типы, возвращаются только элементы управления содержимым поддерживаемых типов. Имейте в виду, что при использовании методов универсального Word будет создано исключение. ContentControl, который не относится к конкретному типу. Со временем могут поддерживаться дополнительные типы элементов управления содержимым. Поэтому надстройка должна запрашивать и обрабатывать определенные типы элементов управления содержимым.

getHtml()

Возвращает HTML-представление объекта элемента управления содержимым. При отображении на веб-странице или в средстве просмотра HTML форматирование будет близко, но не точно совпадает с форматированием документа. Этот метод не возвращает один и тот же HTML-код для одного документа на разных платформах (Windows, Mac, Word в Интернете и т. д.). Если вам нужна точную точность или согласованность на разных платформах, используйте ContentControl.getOoxml() и преобразуйте возвращенный XML-код в HTML.

getHtml(): OfficeExtension.ClientResult<string>;

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Возвращает OOXML-представление объекта элемента управления содержимым.

getOoxml(): OfficeExtension.ClientResult<string>;

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Возвращает весь элемент управления содержимым (либо его начальную или конечную точку) в виде диапазона.

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

Параметры

rangeLocation

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

Необязательный параметр. Диапазон должен находиться в диапазоне "Whole", "Start", "End", "Before", "After" или "Content".

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.3 ]

getReviewedText(changeTrackingVersion)

Возвращает проверенный текст на основе выбора ChangeTrackingVersion.

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

Параметры

changeTrackingVersion
Word.ChangeTrackingVersion

Необязательный параметр. Значение должно быть "Original" или "Current". Значение по умолчанию — Current.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.4 ]

getReviewedText(changeTrackingVersionString)

Возвращает проверенный текст на основе выбора ChangeTrackingVersion.

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

Параметры

changeTrackingVersionString

"Original" | "Current"

Необязательный параметр. Значение должно быть "Original" или "Current". Значение по умолчанию — Current.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.4 ]

getTextRanges(endingMarks, trimSpacing)

Получает текстовые диапазоны в элементе управления содержимым с помощью знаков препинания и (или) других конечных знаков.

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

Параметры

endingMarks

string[]

Обязательно. Знаки препинания и (или) другие конечные знаки в виде массива строк.

trimSpacing

boolean

Необязательный параметр. Указывает, следует ли обрезать символы интервалов (пробелы, табуляции, разрывы столбцов и конце абзаца) от начала и конца диапазонов, возвращаемых в коллекции диапазонов. Значение по умолчанию равно false, указывающее, что символы с интервалами в начале и конце диапазонов включены в коллекцию диапазонов.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.3 ]

getTrackedChanges()

Возвращает коллекцию объектов TrackedChange в элементе управления содержимым.

getTrackedChanges(): Word.TrackedChangeCollection;

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.6 ]

insertBreak(breakType, insertLocation)

Вставляет разрыв в указанном расположении в основном документе. Этот метод нельзя использовать с элементами управления содержимым RichTextTable, RichTextTableRow и 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;

Параметры

breakType

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

Обязательно. Тип разрыва.

insertLocation

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

Обязательно. Значения должны быть "Start", "End", "Before" или "After".

Возвращаемое значение

void

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Вставляет документ в элемент управления содержимым в указанном расположении.

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

Параметры

base64File

string

Обязательно. Содержимое файла .docx в кодировке Base64.

insertLocation

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

Обязательно. Значение должно быть "Replace", "Start" или "End". "Заменить" нельзя использовать с элементами управления содержимым RichTextTable и RichTextTableRow.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.1 ]

Примечание. Вставка не поддерживается, если вставляемый документ содержит элемент ActiveX (вероятно, в поле формы). Рассмотрите возможность замены такого поля формы элементом управления содержимым или другим вариантом, подходящим для вашего сценария.

insertHtml(html, insertLocation)

Вставляет HTML-код в элемент управления содержимым в указанном расположении.

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

Параметры

html

string

Обязательно. HTML-код, который необходимо вставить в элемент управления содержимым.

insertLocation

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

Обязательно. Значение должно быть "Replace", "Start" или "End". "Заменить" нельзя использовать с элементами управления содержимым RichTextTable и RichTextTableRow.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Вставляет встроенный рисунок в элемент управления содержимым в указанном расположении.

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

Параметры

base64EncodedImage

string

Обязательно. Изображение в кодировке Base64, вставленное в элемент управления содержимым.

insertLocation

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

Обязательно. Значение должно быть "Replace", "Start" или "End". "Заменить" нельзя использовать с элементами управления содержимым RichTextTable и RichTextTableRow.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.2 ]

insertOoxml(ooxml, insertLocation)

Вставляет OOXML в элемент управления содержимым в указанном расположении.

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

Параметры

ooxml

string

Обязательно. OOXML, вставляемый в элемент управления содержимым.

insertLocation

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

Обязательно. Значение должно быть "Replace", "Start" или "End". "Заменить" нельзя использовать с элементами управления содержимым RichTextTable и RichTextTableRow.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Вставляет абзац в указанном расположении.

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

Параметры

paragraphText

string

Обязательно. Текст абзаца, который необходимо вставить.

insertLocation

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

Обязательно. Значения должны быть "Start", "End", "Before" или "After". "Before" и "After" нельзя использовать с элементами управления содержимым "RichTextTable", "RichTextTableRow" и "RichTextTableCell".

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Вставляет таблицу с указанным количеством строк и столбцов в элемент управления содержимым или рядом с ним.

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;

Параметры

rowCount

number

Обязательно. Количество строк в таблице.

columnCount

number

Обязательно. Количество столбцов в таблице.

insertLocation

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

Обязательно. Значения должны быть "Start", "End", "Before" или "After". "Before" и "After" нельзя использовать с элементами управления содержимым "RichTextTable", "RichTextTableRow" и "RichTextTableCell".

values

string[][]

Необязательный двухмерный массив. Ячейки заполняются, если в массиве указаны соответствующие строки.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.3 ]

insertText(text, insertLocation)

Вставляет текст в элемент управления содержимым в указанном расположении.

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

Параметры

text

string

Обязательно. Текст, который необходимо вставить в элемент управления содержимым.

insertLocation

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

Обязательно. Значение должно быть "Replace", "Start" или "End". "Заменить" нельзя использовать с элементами управления содержимым RichTextTable и RichTextTableRow.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

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

Параметры

options
Word.Interfaces.ContentControlLoadOptions

Предоставляет параметры свойств объекта для загрузки.

Возвращаемое значение

Примеры

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

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

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

Параметры

propertyNames

string | string[]

Строка с разделителями-запятыми или массив строк, указывающих свойства для загрузки.

Возвращаемое значение

load(propertyNamesAndPaths)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

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

Параметры

propertyNamesAndPaths

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

propertyNamesAndPaths.select — это строка с разделителями-запятыми, указывающая загружаемые свойства, и propertyNamesAndPaths.expand строка с разделителями-запятыми, указывающая загружаемые свойства навигации.

Возвращаемое значение

search(searchText, searchOptions)

Выполняет поиск с указанным SearchOptions на область объекта элемента управления содержимым. Результат поиска — это коллекция объектов диапазона.

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

Параметры

searchText

string

Обязательно. Текст для поиска.

searchOptions

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

Необязательный параметр. Параметры поиска.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

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

Выбирает элемент управления контентом. При этом Word переходит к выделенному фрагменту.

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

Параметры

selectionMode
Word.SelectionMode

Необязательный параметр. Режим выбора должен быть "Select", "Start" или "End". Значение по умолчанию — Select.

Возвращаемое значение

void

Комментарии

[ Набор API: WordApi 1.1 ]

select(selectionModeString)

Выбирает элемент управления контентом. При этом Word переходит к выделенному фрагменту.

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

Параметры

selectionModeString

"Select" | "Start" | "End"

Необязательный параметр. Режим выбора должен быть "Select", "Start" или "End". Значение по умолчанию — Select.

Возвращаемое значение

void

Комментарии

[ Набор API: WordApi 1.1 ]

set(properties, options)

Задает несколько свойств объекта одновременно. Можно передать обычный объект с соответствующими свойствами или другой объект API того же типа.

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

Параметры

properties
Word.Interfaces.ContentControlUpdateData

Объект JavaScript со свойствами, структурированными изоморфно по свойствам объекта, для которого вызывается метод .

options
OfficeExtension.UpdateOptions

Предоставляет возможность подавления ошибок, если объект свойств пытается задать какие-либо свойства, доступные только для чтения.

Возвращаемое значение

void

Примеры

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

Задает несколько свойств объекта одновременно на основе существующего загруженного объекта.

set(properties: Word.ContentControl): void;

Параметры

properties
Word.ContentControl

Возвращаемое значение

void

split(delimiters, multiParagraphs, trimDelimiters, trimSpacing)

Разделяет элемент управления содержимым на дочерние диапазоны с помощью разделителей.

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

Параметры

delimiters

string[]

Обязательно. Разделители в виде массива строк.

multiParagraphs

boolean

Необязательный параметр. Указывает, может ли возвращаемый дочерний диапазон охватывать несколько абзацев. Значение по умолчанию равно false, указывающее, что границы абзаца также используются в качестве разделителей.

trimDelimiters

boolean

Необязательный параметр. Указывает, следует ли обрезать разделители из диапазонов в коллекции диапазонов. Значение по умолчанию равно false, указывающее, что разделители включены в диапазоны, возвращаемые в коллекции диапазонов.

trimSpacing

boolean

Необязательный параметр. Указывает, следует ли обрезать символы интервалов (пробелы, табуляции, разрывы столбцов и конце абзаца) от начала и конца диапазонов, возвращаемых в коллекции диапазонов. Значение по умолчанию равно false, указывающее, что символы с интервалами в начале и конце диапазонов включены в коллекцию диапазонов.

Возвращаемое значение

Комментарии

[ Набор API: WordApi 1.3 ]

toJSON()

Переопределяет метод JavaScript toJSON() , чтобы обеспечить более полезные выходные данные при передаче объекта API в JSON.stringify(). (JSON.stringifyв свою очередь вызывает toJSON метод переданного ему объекта.) В то время как исходный Word.ContentControl объект является объектом API, toJSON метод возвращает обычный объект JavaScript (типизированный как Word.Interfaces.ContentControlData), который содержит неглубокие копии всех загруженных дочерних свойств из исходного объекта.

toJSON(): Word.Interfaces.ContentControlData;

Возвращаемое значение

track()

Отслеживает объект для автоматической корректировки с учетом окружающих изменений в документе. Этот вызов является сокращением для context.trackedObjects.add(thisObject). Если вы используете этот объект в вызовах .sync и вне последовательного выполнения пакета .run и получаете ошибку InvalidObjectPath при задании свойства или вызове метода для объекта, необходимо добавить объект в отслеживаемую коллекцию объектов при первом создании объекта. Если этот объект является частью коллекции, следует также отслеживать родительскую коллекцию.

track(): Word.ContentControl;

Возвращаемое значение

untrack()

Освобождает память, связанную с этим объектом, если он ранее отслеживался. Этот вызов является сокращенным для context.trackedObjects.remove(thisObject). Наличие большого количества отслеживаемых объектов замедляет ведущее приложение, поэтому не забывайте освобождать любые добавленные объекты после завершения их использования. Вызов потребуется выполнить context.sync() до того, как выпуск памяти вступит в силу.

untrack(): Word.ContentControl;

Возвращаемое значение

Сведения о событии

onDataChanged

Происходит при изменении данных в элементе управления содержимым. Чтобы получить новый текст, загрузите этот элемент управления содержимым в обработчик. Чтобы получить старый текст, не загружайте его.

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

Тип события

Комментарии

[ Набор API: WordApi 1.5 ]

Примеры

// 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: Word.ContentControlCollection = 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:`, event.ids);
  });
}

onDeleted

Происходит при удалении элемента управления содержимым. Не загружайте этот элемент управления содержимым в обработчик, в противном случае вы не сможете получить его исходные свойства.

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

Тип события

Комментарии

[ Набор API: WordApi 1.5 ]

Примеры

// 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: Word.ContentControlCollection = 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:`, event.ids);
  });
}

onEntered

Происходит при вводе элемента управления содержимым.

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

Тип события

Комментарии

[ Набор API: WordApi 1.5 ]

Примеры

// 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: Word.ContentControlCollection = 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

Происходит при выходе из элемента управления содержимым, например при выходе курсора из элемента управления содержимым.

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

Тип события

Комментарии

[ Набор API: WordApi 1.5 ]

Примеры

// 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: Word.ContentControlCollection = 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

Происходит при изменении выделения в элементе управления содержимым.

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

Тип события

Комментарии

[ Набор API: WordApi 1.5 ]

Примеры

// 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: Word.ContentControlCollection = 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:`, event.ids);
  });
}