Содержание
Пользовательские команды
Создание/обновление пользовательской команды
Для добавления/обновления команды используйте соответствующую sceditor.command.set() функцию.
Важно:При создании или обновлении команды это необходимо сделать до создания экземпляра редактора, например, до вызова метода sceditor.create().
Функция sceditor.command.set() принимает два аргумента: name и cmd.
- name String
Название команды, используемое для ее отображения на панели инструментов. Должно быть написано строчными буквами!
- Объект cmd.
Объект команды. Подробнее см. ниже.
- script.js
sceditor.command.set('commandname', { exec: function() { // this is set to the editor instance this.insert('a'); }, txtExec: function() { // this is set to the editor instance this.insert('a'); }, tooltip: 'Insert the letter a' });
Чтобы добавить значок к команде, используйте следующий CSS-код:
- style.css
.sceditor-button-[name] div { background: url('/images/icon.png'); }
где [name] — это имя, используемое с sceditor.command.set(). Дополнительную информацию см. в разделе «Тематическое оформление». После создания команды вы можете добавить её на панель инструментов редактора с помощью опции «Панель инструментов».
Структура объекта команды:
- script.js
{ exec: undefined, errorMessage: undefined, txtExec: undefined, tooltip: undefined }
exec
**exec** String or function
Выполняется при щелчке по кнопке в режиме WYSIWYG.
Это должна быть либо строка, которая будет передана в нативную execCommand() функцию браузера.
Или функция, принимающая 1 аргумент caller. Функции thisбудут установлены на экземпляр редактора.
- caller HTMLElement
Элемент HTML-кнопки с командами или null.
- script.js
exec: function () { this.insert('[b]Hello World[/b]'); }
- script.js
// Bold will be passed to the native execCommand exec: 'bold'
errorMessage
**errorMessage** String
Сообщение об ошибке, отображаемое в случае execсбоя при вызове нативных функций браузера execCommand(). Применяется только в том случае, если exec это строка.
shortcut
state
**state** String or function
Если state это строка, она будет передана в нативные queryCommandEnabled методы queryCommandState для получения состояния.
Если state это функция, то в качестве аргументов ей будут переданы родительский узел и родительский узел firstBlock. Она должна возвращать значение -1, 0 или 1
- -1 Отключено (недоступно для нажатия)
- 0 Неактивен (состояние по умолчанию, можно нажать)
- 1 Активен (отображается как нажатый)
txtExec
**txtExec** String or array
Это должен быть либо массив, содержащий 1-2 строки, либо функция.
Если задан массив, содержащий две строки, то любое выделенное содержимое будет заключено в обе строки, а курсор будет перемещен перед последней из них. Если массив содержит только одну строку и при этом выделено какое-либо содержимое, то выделенное содержимое будет заменено, а курсор будет перемещен после вставленной строки.
Если txtExec это функция, она должна принимать 1 аргумент caller. Функции this будут установлены в редакторе.
caller HTMLElement Элемент HTML-кнопки с командами или null.
- script.js
txtExec: function () { this.insert('[b]Hello World[/b]'); }
- script.js
txtExec: ['[b]', '[/b]']
tooltip
**tooltip** String
Всплывающая подсказка, которая отображается при наведении курсора мыши на команду.
