我正在尝试设置应用于用户进入空白编辑区时自动创建的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())
,我可以奇怪地让textarea
更新过滤器应用的更改,例如:
CKEDITOR.instances['editor1'].on('blur', function() {
CKEDITOR.instances['editor1'].setData(CKEDITOR.instances['editor1'].getData());
});
但这也需要用户互动。使用"更改" event创建递归。
我是CKEditor的新手,显然我错过了过滤器如何与当前在textarea中显示的内容相关的内容。
那里有任何CKEditor
大师吗?救命啊!
由于