ueditor中切换字体,换行、失焦操作后,全选修改字体,部分字体样式未修改。问题在github上也有:https://github.com/fex-team/ueditor/pull/3222
根据issue上@wangzh1010的方法还会有问题:
1.文本框内按backspace或delete键清空,再进行操作,第一行文本需要修改2次字体才会生效。原因是清除到空时,增加了占位符<br/>
,改成空或domUtils.fillChar即可。domUtils.fillChar设置的是\u200B
,是一个不展示任何东西的占位符,获取文本长度是1。
为什么有<br/>
第一行就不清空了呢?原因是在选中后修改字体时,程序先去遍历要修改样式的节点,也就是span标签,若父节点下有多个节点(<br/>
占了1个子节点)会做不同的操作,不会直接修改样式。
2.换行失焦后,是复制了上一个兄弟节点,清空孙子节点的text,并赋值<br/>
空节点。这个br标签导致字体样式不生效。需要修改enterTag的类型,由p改为br。
整个过程还没理清楚,对原代码的逻辑也有些疑问,为什么要占位符,为什么enterTag需要是p。还需要继续研究。