Я создаю пользовательскую панель инструментов, используя CKEDITOR
API.Чтобы проверить, активен ли стиль, я использую этот
const styles = {
bulletedlist: new CKEDITOR.style({element: "ul"}),
numberedlist: new CKEDITOR.style({element: "ol"}),
bold: new CKEDITOR.style({element: "strong"}),
italic: new CKEDITOR.style({element: "em"}),
code: new CKEDITOR.style({element: "code"}),
h2: new CKEDITOR.style({element: "h2"}),
h3: new CKEDITOR.style({element: "h3"}),
link: new CKEDITOR.style({element: "a"}),
code: new CKEDITOR.style({element: "code"}),
blockquote: new CKEDITOR.style({element: "blockquote"}),
justifyleft: new CKEDITOR.style({styles: {"text-align": "left"}}),
justifyright: new CKEDITOR.style({styles: {"text-align": "right"}}),
justifycenter: new CKEDITOR.style({styles: {"text-align": "center"}}),
justifyblock: new CKEDITOR.style({styles: {"text-align": "justify"}})
}
for (let key in styles) {
const $button = $(`[data-style='${key}']`)
const element = editor.elementPath()
styles[key].checkActive(element, editor)
? $button.addClass("button--active")
: $button.removeClass("button--active")
}
, который отлично работает, за исключением последних четырех стилей (выравнивания текста)
Яприменяя выравнивание текста к каждому тегу, возможному в моем редакторе (p, h1, h2, strong, em, etc..
) через
editor.execCommand(style)
, где style
может быть: bold, italic, justifyright, justifyleft, etc..
, и это также отлично работает.
Моя проблемав том, что я не могу проверить, применяется ли выравнивание к выделенному тексту.Я попытался использовать
new CKEDITOR.style({element: "p", styles: {"text-align": "left"}})
, и это работает, но это означало бы создание одного style
на каждый tag
, используемый в редакторе.Есть идеи?