日积月累 水滴石穿

解决ueditor编辑器中li的样式丢失问题


2023-06-29 15:25:55

用ueditor时,通过源代码模式,在li中加自定class后,保存后丢失。
查了下ueditor源码,发现与两个地方相关。

  1. plugin['defaultfilter']中
UE.plugins["defaultfilter"] = function() {
 ...
          case "li":
            var className = node.getAttr("class");
            if (!className || !/list\-/.test(className)) {
              node.setAttr();
            }
  1. adjustListStyle时修改了li样式
  me.addListener("contentchange", function() {
    adjustListStyle(me.document);
  });
  function adjustListStyle(doc, ignore) {
   ...
  li.className = li.className.replace(/list-[\w\-]+/gi, ""); 

结论:手写样式list-开头,再修改下ueditor代码,去掉li.className.replace(....) 就能保持住