Я пытаюсь установить стиль по умолчанию, применяемый к P elements
, которые автоматически создаются, когда пользователь входит в пустую область редактирования. Я много часов искал ответа, но ничего не нашел. Требования:Настройка стиля абзаца по умолчанию без взаимодействия с пользователем
- Стиль должен быть рядный, нет таблицы стилей
- Нет взаимодействия с пользователем, не плагин формат/стиль не щелкать
Когда пользователь щелкает в области редактирования и начинает печатать, Я хочу, чтобы стиль был применен и виден автоматически. Неужели есть способ сделать это?
Ближайший я получил это с помощью htmlFilter
, например:
p_rule = {
elements : {
p : function(element) {
if (element.attributes.style === undefined) {
element.attributes.style = "color: #0000ff;";
}
}
}
};
ev.editor.dataProcessor.htmlFilter.addRules(p_rule);
Но новый стиль автоматически не виден.
Это становится видимым, если пользователь переходит в режим редактирования исходного кода и возвращается к WYSIWYG
, но я хочу, чтобы он был автоматическим.
Я попытался с помощью updateElement()
в функции фильтра, но он не работает и создает бесконечную рекурсию:
p_rule = {
elements : {
p : function(element) {
if (element.attributes.style === undefined) {
element.attributes.style = "color: #0000ff;";
CKEDITOR.instances['editor1'].updateElement();
}
}
}
};
ev.editor.dataProcessor.htmlFilter.addRules(p_rule);
(я предполагаю updateElement()
запускающий фильтр)
Если я использую setData(getData())
от случая I может странно получить textarea
для обновления с изменениями применяется фильтр, например:
CKEDITOR.instances['editor1'].on('blur', function() {
CKEDITOR.instances['editor1'].setData(CKEDITOR.instances['editor1'].getData());
});
Но это тоже требует взаимодействия с пользователем. Использование события «change» создает рекурсию.
Я новичок в CKEditor и, очевидно, что-то не хватает на то, как фильтр работает в отношении того, что в настоящее время отображается в текстовом поле.
Любой CKEditor
гуру там? Помогите!
Thanks