Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Написание кода плагина

Обновлено: 17.12.25

Основной код плагина находится в файле .js, описывающем, какие действия и каким образом должен выполнять плагин. Этот файл размещается в корневой папке плагина вместе с файлами config.json ↗ и index.html ↗.

Как это работает?

В коде каждого плагина содержится объект window.Asc.plugin ↗, который, в свою очередь, имеет несколько методов для взаимодействия с редакторами документов, таблиц и презентаций.

Для работы плагина разработчик должен определить два обязательных метода для объекта window.Asc.plugin ↗window.Asc.plugin.init ↗ и window.Asc.plugin.button ↗. После этого используется метод window.Asc.plugin.callCommand ↗ для передачи данных в редакторы с помощью встроенных функций API Генератора документов.

Если плагин работает с OLE-объектом, для управления им используется метод window.Asc.plugin.executeCommand ↗.

Рассмотрим, как это сделано в плагине helloworld.js:

(function (window, undefined) {
    window.Asc.plugin.init = function () {
        this.callCommand(function() {
            var oDocument = Api.GetDocument();
            var oParagraph = Api.CreateParagraph();
            oParagraph.AddText("Hello world!");
            oDocument.InsertContent([oParagraph]);
        }, true);
    };
    window.Asc.plugin.button = function (id) {
    };
})(window, undefined);

При инициализации плагина (window.Asc.plugin.init = function () {…})редактор формирует абзац с фразой «Hello World», а затем использует API Генератора документов для создания документа с этим текстом (с помощью метода window.Asc.plugin.callCommand ↗ — this.callCommand(function() {…})).

Важно

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

Единственная кнопка «OK» (window.Asc.plugin.button = function (id) {…}) используется для создания текста и завершения работы с плагином.

Таким же образом можно создать любой другой плагин. В настоящее время плагины поддерживают не только передачу текста или форматированного текста в редакторы, но и встраивание OLE-объектов (например, плагин YouTube, встраивающий видео с YouTube на страницу редактора).