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