ChickenDreamFactory / fe-question

fe-question,前端问答

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用百度富文本编辑器UEditor

webVueBlog opened this issue · comments

不要忘记修改ueditor.config.js

/**
   * 编辑器资源文件根路径。它所表示的含义是:以编辑器实例化页面为当前路径,指向编辑器资源文件(即dialog等文件夹)的路径。
   * 鉴于很多同学在使用编辑器的时候出现的种种路径问题,此处强烈建议大家使用"相对于网站根目录的相对路径"进行配置。
   * "相对于网站根目录的相对路径"也就是以斜杠开头的形如"/myProject/ueditor/"这样的路径。
   * 如果站点中有多个不在同一层级的页面需要实例化编辑器,且引用了同一UEditor的时候,此处的URL可能不适用于每个页面的编辑器。
   * 因此,UEditor提供了针对不同页面的编辑器可单独配置的根路径,具体来说,在需要实例化编辑器的页面最顶部写上如下代码即可。当然,需要令此处的URL等于对应的配置。
   * window.UEDITOR_HOME_URL = "/xxxx/xxxx/";
   */
  window.UEDITOR_HOME_URL = "/static/UE/";

在页面beforeDestroy()时,也就是页面跳转,关闭的时候记得要editor.destroy()将Ueditor摧毁,不然页面会报错。

1.文件路径配置不对

image

在修改ueditor.config.js时,这个需要看自己项目文件是否在服务器的根目录。

如果是根目录,则这样应该没问题

http://---.com ---> /static/UE/

如果不是是根目录 /static/UE/ 但是如果不在根目录,则就会因为资源找不到造成这种错误,改为

域名是 http://---.com/damin/ ---> /damin/static/UE/

之前

if (typeof define === "function" && define.amd) {
    define(function () {
      return ZeroClipboard;
    });
  } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
    module.exports = ZeroClipboard;
  }else{
      window.ZeroClipboard = ZeroClipboard;
  }

复制代码改为

if (typeof define === "function" && define.amd) {
    define(function () {
      return ZeroClipboard;
    });
  } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
    module.exports = ZeroClipboard;
  }
  window.ZeroClipboard = ZeroClipboard;

特别注意

UEDITOR_HOME_URL: '/ueditor/',这个配置很重要,一定得写对

取消UEditor默认的过滤转换机制

在一些比较特殊的情况下,用户会使用HTML模式,直接将html段粘贴到编辑器中,切换回编辑模式时,编辑器默认会有一个过滤转换机制,重新优化html结构,这样就破坏了原始的html结构,以下是取消默认的过滤转换机制方法
找到源码文件,在过滤转换机制方法中写个return;不执行过滤转换机制代码

ueditor.all.js

UE.plugins['defaultfilter'] = function () {
    return;
    var me = this;
    me.setOpt({
        'allowDivTransToP':true,
        'disabledTableInTable':true
    });
...