• Post category:Методы
  • Запись изменена:07.11.2022

window.Asc.plugin.executeCommand (type, data, callback)

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

Этот метод устарел, используйте метод callCommand, который запускает код из параметра строки данных.
Сейчас этот метод в основном используется для работы с OLE-объектами или закрытия плагина без каких-либо других команд. Он также сохраняется для использования с текстом, чтобы предыдущие версии плагина оставались совместимыми.

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

Второй параметр — это код JavaScript для работы с Document Builder API, который позволяет плагину отправлять структурированные данные, вставленные в результирующий файл документа (форматированные абзацы, таблицы, текстовые части и отдельные слова и т. д.).

Команды Document Builder можно использовать только для создания контента и его вставки в редактор документов (используя Api.GetDocument().InsertContent(…)). Это ограничение существует из-за функции совместного редактирования в онлайн-редакторах. Если необходимо создать плагин для десктопных редакторов для работы с локальными файлами, такое ограничение не применяется.
Параметры
НазваниеОписаниеТип
typeОпределяет тип команды. Закрытие используется для закрытия окна плагина после выполнения функции в параметре данных. Команда используется для выполнения команды и оставления окна открытым в ожидании следующей команды.строковый
dataОпределяет команду, написанную в коде JavaScript, целью которой является формирование структурированных данных, которые могут быть вставлены в результирующий файл документа (форматированные абзацы, таблицы, текстовые части и отдельные слова и т. д.). Затем данные отправляются в редакцию. Команда должна быть совместима с синтаксисом Document Builder.строковый
callbackРезультат, который возвращает метод.функциональный

При создании/редактировании OLE-объектов для работы с ними используются два расширения:

  • Api.asc_addOleObject (window.Asc.plugin.info) — используется для создания OLE — объекта в документе;
  • Api.asc_editOleObject (window.Asc.plugin.info) -используется для редактирования созданного OLE — объекта.

При создании/редактировании объектов их свойства могут быть переданы в объект window.Asc.plugin.info, который определяет, как должен выглядеть объект.

Пример OLE-объекта
window.Asc.plugin.button = function (id) {
    var _info = window.Asc.plugin.info;
    var _method = (_info.objectId === undefined) ? "asc_addOleObject" : "asc_editOleObject";
    _info.width = _info.width ? _info.width : 70;
    _info.height = _info.height ? _info.height : 70;
    _info.widthPix = (_info.mmToPx * _info.width) >> 0;
    _info.heightPix = (_info.mmToPx * _info.height) >> 0;
    _info.imgSrc = window.g_board.getResult(_info.widthPix, _info.heightPix).image;
    _info.data = window.g_board.getData();
    var _code = "Api." + _method + "(" + JSON.stringify(_info) + ");";
    this.executeCommand("close", _code);
};
Пример текста (не используется, но сохранен для совместимости)
window.Asc.plugin.init = function () {
    var sScript = 'var oDocument = Api.GetDocument();';
    sScript += 'oDocument.CreateNewHistoryPoint();';
    sScript += 'oParagraph = Api.CreateParagraph();';
    sScript += 'oParagraph.AddText(\'Hello word!\');';
    sScript += 'oDocument.InsertContent([oParagraph]);';
    window.Asc.plugin.info.recalculate = true;
    this.executeCommand("close", sScript);
};