Содержание

Пользовательские команды


Создание/обновление пользовательской команды

Для добавления/обновления команды используйте соответствующую sceditor.command.set() функцию.

:&9: Важно:При создании или обновлении команды это необходимо сделать до создания экземпляра редактора, например, до вызова метода sceditor.create().
:!: Предупреждение:Эта функция обновит любую существующую команду с тем же именем.

Функция sceditor.command.set() принимает два аргумента: name и 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будут установлены на экземпляр редактора.

Элемент 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

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

Всплывающая подсказка, которая отображается при наведении курсора мыши на команду.

Дополнения и Файлы

Ссылка на оригинальную статью