Основной код плагина находится в файле .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 на страницу редактора).








