客户指明道姓需要使用百度编辑器,好吧,虽然自从李彦宏把一个好好的千千静听搞得节操尽碎之后,我就对百度的东西毫无好感,但是客户是上帝嘛,不就一个文本编辑器嘛,弄之,始料未及的是,就是这样一个简单的文本编辑器,差点搞了我一天(中间有做其它事儿).

百度编辑器,你这样坑,李彦宏造吗?感觉说多了都是泪啊!

----------------------------------吐槽分割线--------------------------------

具体编辑器的部署和实例就不说了.网上资料太多.说一说坑坑.

1。从官网上下载的东西居然有错。

如图:

包括ueditor.all.js,ueditor.all.min.都报这样的错,请注意,是差了东西,语法错误,我开始还以为是其它人为或是eclipse或是项目的问题,我断断续续从官网上下了五次,包括两种版本,aspjspphp各处语言,结果都报错。各种clean,甚至重启eclipse和电脑。如果是ueditor.all.js还可以自己去修正,这样的压缩的JS叫我从何下手啊?虽然说这样的错不影响使用效果,我也不是有代码洁癖,但这确实影响心情。

2。在页面引入时,ueditor.config.js一定要放在ueditor.all.min.js之前,不然编辑器根本无法显示出来.然后报此错:

搜了一下,在ueditor.config.js的最底部发现了这段代码:

  window.UE = {
getUEBasePath: getUEBasePath
};

好吧,我可以理解成为是对UE的初始化,以便在页面中使用UE创建编辑器的实例.但是我试着把这段代码注释掉,没有报错了,编辑器的实例同样创建了,且不影响正常编辑使用.这证明了,其实UE的初始化是在另一个地方完成的(我没找到不晓得在哪里),我不晓得这段代码用意为何,除了会引起报错以外.

3.神一样的文档和API

官网部署说明,如图:

是的,如果你按照官网的介绍,这样部署,恭喜你,你将永远无法成功!(除非是一个小东西,没有二层以上的目录结构)

你还得去在ueditor.config.js或者页面中对window.UEDITOR_HOME_URL 设置为新的路径。比较麻烦的一点是上传图片,在imageUp.jsp中需要进行修改

 //加载配置文件
Properties pro = new Properties();
String propertiesPath = request.getRealPath("/jsp/config.properties");//报错
request.getRealPath("editor/jsp/config.properties");
Properties properties = new Properties();

在ueditor.config.js中对路径进行具体的设置和各种属性的设置,我能理解,但是居然需要对自带的页面进修改,着实无法理解!

API要稍微靠谱一点,但也容易让人产生误解.对于getAllHtml()方法,文档给出的解释是"取得完整的html代码,可以直接显示成完整的html文档",用之,编辑了大概千字不到的文本还不包括其它大文件,插入数据库就报长度错误了.然后就跟这方法各种死磕啊…………

我的理解是getAllHtml()这个方法能够取得包括整个编辑器和实际编辑内容的HTML格式内容,实际上,哪怕编辑器内没有任何东西,提交到后台的内容长度大概也在五万左右。然后想各种方法去过滤掉这部分,甚至想过用字符串截取…………那阵子脑袋已经乱了,后来出去抽了支烟,透了透气,一想,不对啊,肯定有别的方法。这当然是我的错了,但是,我觉得API文档也有不尽人意之处.

对于百度编辑器获取编辑内容,如果是在后台获取,只需使用request和name属性即可;如果是在前端,则需使用UE的getContent().对于后一点,我有用baidu和google在网上搜了巨多的资料和博文,我发现其中都没有明确讲到这一点,文档倒是讲了,可是不清不楚有岐义,所以这也不能全怪我吧?

PS:

在使用UEditor的时候由于各种原因吧,出现了许多问题,我坚持认为编辑器本身是有些值得商榷的地方,当然我个人也有问题!我没想到引来许多园友的评论,甚至引来UEditor的作者。甚至上了首页24小时评论和阅读排行榜,我感到惶恐,这只是一个吐槽贴,并没有提出建设性的意见和建议,也不是严格意义上的技术讨论。我做检讨,也请大家适可而止。

我不是专业搞前端的,这也毕竟只是我一家之言,平心而论,确实,作为一个开源项目也不可能照顾到每一个人。如果有对UEditor的作者,UEditor爱好者及拥趸造成困扰,我表示非常抱歉!

  

ueditor:原谅我这一生不羁放纵爱独特的更多相关文章

  1. 【C++对象模型】构造函数语意学之二 拷贝构造函数

    关于默认拷贝构造函数,有一点和默认构造函数类似,就是编译器只有在[需要的时候]才去合成默认的拷贝构造函数. 在什么时候才是[需要的时候]呢? 也就是类不展现[bitwise copy semantic ...

  2. 虎说:bootstrap源码解读(重置模块)

    ------<!--action-->------ 开场show:前不生“不犹豫”,后半生“不后悔”.今天又逃课,我不后悔 素材:推特公司的前端框架bootstrap(下称bt),解读源码 ...

  3. 用javascript和html5做一个音乐播放器,附带源码

    效果图: 实现的功能 1.首页 2.底部播放控件 3.播放页面 4.播放列表 5.排行榜 6.音乐搜索 输入搜索关键词,点击放大镜图标 7.侧边栏 目录结构 开发心得与总结 1.轮播图 首先感谢作者S ...

  4. JS和H5做一个音乐播放器,附带源码

    http://mp.weixin.qq.com/s/KpXT9X46AMlUVXQvpHuXGQ 效果图: 实现的功能 1.首页 2.底部播放控件 3.播放页面 4.播放列表 5.排行榜 6.音乐搜索 ...

  5. it喜爱的歌词

    1.曼丽 我们的过去我们的情义怎么能忘记  #曼丽你怎么这样忍心静静的就离去 #我很伤心从今以后不能够见到你 #只有留下你往日的情景使我常回忆 #一样的青山一样的绿水只有我和你 #曼丽可记得我们时常快 ...

  6. Eclipse 变量点击高亮显示以及自己定义高亮显示颜色

    1.方法一:alt+shift+o 打开/关闭,该功能 2.方法二:windows-> preferences->java->Editor->Mark Occurences ( ...

  7. python_0基础开始_day03

    第三节 一.整形和布尔值的转换 int整型 python3: 全部都是整型 python2: 整型,长整型long 十进制转换二进制 # 将十进制的168转换为二进制 ​#得出结果 将十进制的168转 ...

  8. Python_基础数据类型

    一,首先介绍一下变量 1. 变量是什么 在Python中,变量的概念基本上和初中代数的方程变量是一致的. 2. 变量命名规则 由数字.字母.下划线组成 不能以数字开头 要具有描述性 要区分大小写 禁止 ...

  9. 我的2013 Q.E.D

    "旧历的年底毕竟最像年底,村镇上不必说,就在天空中也显出将到新年的气象来.灰白色的沉重的晚云中间时时发出闪光,接着一声钝响,是送灶的爆竹:近处燃放的可就更强烈了,震耳的大音还没有息,空气里已 ...

随机推荐

  1. CentOS6.5配置vim使支持Python

    CentOS6.5下开启vim对python的支持,配置方法如下: 1.检查系统已经安装了RPM包vim-enhanced; 2.复制默认的.vimrc初始化文件: # cp /usr/share/v ...

  2. android中关闭软键盘

    /**隐藏软键盘**/ View view = getWindow().peekDecorView(); if (view != null) { InputMethodManager inputman ...

  3. ctags对部分目录生成tags

    最近在研究Tiny6410上的uboot移植,看uboot源码时,生成tags文件用的是最粗暴的方法:“ctags -R *”,由于某些函数在各个平台下都有实现,导致在用“g+]”跳转到该函数的定义时 ...

  4. linux下alias命令详解

    功能说明:设置指令的别名. 语 法:alias[别名]=[指令名称] 形如: alias cp=“cp -i” : 补充说明:用户可利用alias,自定指令的别名.若仅输入alias,则可列出目前所有 ...

  5. css3 2d

    CSS3 2D 转换   通过 CSS3 转换,我们能够对元素进行移动.缩放.转动.拉长或拉伸. 以下是 2D 转换 1 translate()通过 translate() 方法,元素从其当前位置移动 ...

  6. winform 自定义控件以及委托事件的使用

    源代码:http://files.cnblogs.com/files/qtiger/%E8%AE%A1%E7%AE%97%E5%99%A8%E5%AE%89%E8%A3%85%E5%8C%85%E4% ...

  7. Eclipse HibernateTools安装

    Hibernate Orm是个很强大的东东,可以将数据表映射成实体,EClipse安装了HibernateTools插件后可以生成pojo,配置xml等一系列自动化工作,为我们的开发减轻了很多. 下面 ...

  8. 四、MongoDB的查询

    一.MongoDB的下载.安装与部署 二.MongoDB的基础知识简介 三.MongoDB的创建.更新和删除 db.blogs.insert([ { "author": " ...

  9. 直接拿来用!超实用的Java数组技巧攻略[转]

    来自csdn http://www.csdn.net/article/2013-09-16/2816947-methods-for-java-arrays 本文分享了关于Java数组最顶级的11大方法 ...

  10. 【转】Spark 体系结构

    原文地址:http://jerryshao.me/architecture/2013/03/29/spark-overview/ 援引@JerryLead的系统架构图作为Spark整体结构的一个 bi ...