img

百度UEditor编辑器如何去除自动默认添加的p标签

2020-04-06 0条评论 2.7k次阅读 JavaScript

UEditor是百度出品的一个很好的文本编辑器,但是在使用过程中,默认的是每次都会自动追加p标签。但是在很多情况下,我并不需要这p标签,为此很闹心。那有没有什么办法消除这自动添加的p标签呢?


UEditor是百度出品的一个很好的文本编辑器,但是在使用过程中,默认的是每次都会自动追加p标签。但是在很多情况下,我并不需要这p标签,为此很闹心。那有没有什么办法消除这自动添加的p标签呢?

方法如下:

首先:打开ueditor.all.js(或ueditor.all.min.js)。

1、搜索修改成false:allowDivTransToP: false

2、再搜索并修改以下:

//编辑器不能为空内容

if (domUtils.isEmptyNode(me.body)) {
    me.body.innerHTML = '<div>' + (browser.ie ? '' : '<br/>') + '</div>';
}

3、搜索“/给文本或者inline节点套p标签”,并且替换以下内容

//给文本或者inline节点套p标签

      if (me.options.enterTag == 'p') {

        var child = this.body.firstChild, tmpNode;

        if (!child || child.nodeType == 1 &&

          (dtd.$cdata[child.tagName] || isCdataDiv(child) ||

            domUtils.isCustomeNode(child)

            )

          && child === this.body.lastChild) {

          this.body.innerHTML = '<div>' + (browser.ie ? ' ' : '<br/>') + '</div>' + this.body.innerHTML;



        } else {

          var p = me.document.createElement('div');

          while (child) {

            while (child && (child.nodeType == 3 || child.nodeType == 1 && dtd.p[child.tagName] && !dtd.$cdata[child.tagName])) {

              tmpNode = child.nextSibling;

              p.appendChild(child);

              child = tmpNode;

            }

            if (p.firstChild) {

              if (!child) {

                me.body.appendChild(p);

                break;

              } else {

                child.parentNode.insertBefore(p, child);

                p = me.document.createElement('div');

              }

            }

            child = child.nextSibling;

          }

        }

      }

4、搜索 进入编辑器的li要套p标签,这块也要注释掉

5、注释掉这段

node.className = utils.trim(node.className.replace(/list-paddingleft-\w+/,'')) + ' list-paddingleft-' + type;

6、最后注释掉:

li.style.cssText && (li.style.cssText = '');

完美解决,以上是整个流程。

💬 COMMENT


🦄 支持markdown语法

👋友