ueditor:原谅我这一生不羁放纵爱独特
客户指明道姓需要使用百度编辑器,好吧,虽然自从李彦宏把一个好好的千千静听搞得节操尽碎之后,我就对百度的东西毫无好感,但是客户是上帝嘛,不就一个文本编辑器嘛,弄之,始料未及的是,就是这样一个简单的文本编辑器,差点搞了我一天(中间有做其它事儿).
百度编辑器,你这样坑,李彦宏造吗?感觉说多了都是泪啊!
----------------------------------吐槽分割线--------------------------------
具体编辑器的部署和实例就不说了.网上资料太多.说一说坑坑.
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:原谅我这一生不羁放纵爱独特的更多相关文章
- 【C++对象模型】构造函数语意学之二 拷贝构造函数
关于默认拷贝构造函数,有一点和默认构造函数类似,就是编译器只有在[需要的时候]才去合成默认的拷贝构造函数. 在什么时候才是[需要的时候]呢? 也就是类不展现[bitwise copy semantic ...
- 虎说:bootstrap源码解读(重置模块)
------<!--action-->------ 开场show:前不生“不犹豫”,后半生“不后悔”.今天又逃课,我不后悔 素材:推特公司的前端框架bootstrap(下称bt),解读源码 ...
- 用javascript和html5做一个音乐播放器,附带源码
效果图: 实现的功能 1.首页 2.底部播放控件 3.播放页面 4.播放列表 5.排行榜 6.音乐搜索 输入搜索关键词,点击放大镜图标 7.侧边栏 目录结构 开发心得与总结 1.轮播图 首先感谢作者S ...
- JS和H5做一个音乐播放器,附带源码
http://mp.weixin.qq.com/s/KpXT9X46AMlUVXQvpHuXGQ 效果图: 实现的功能 1.首页 2.底部播放控件 3.播放页面 4.播放列表 5.排行榜 6.音乐搜索 ...
- it喜爱的歌词
1.曼丽 我们的过去我们的情义怎么能忘记 #曼丽你怎么这样忍心静静的就离去 #我很伤心从今以后不能够见到你 #只有留下你往日的情景使我常回忆 #一样的青山一样的绿水只有我和你 #曼丽可记得我们时常快 ...
- Eclipse 变量点击高亮显示以及自己定义高亮显示颜色
1.方法一:alt+shift+o 打开/关闭,该功能 2.方法二:windows-> preferences->java->Editor->Mark Occurences ( ...
- python_0基础开始_day03
第三节 一.整形和布尔值的转换 int整型 python3: 全部都是整型 python2: 整型,长整型long 十进制转换二进制 # 将十进制的168转换为二进制 #得出结果 将十进制的168转 ...
- Python_基础数据类型
一,首先介绍一下变量 1. 变量是什么 在Python中,变量的概念基本上和初中代数的方程变量是一致的. 2. 变量命名规则 由数字.字母.下划线组成 不能以数字开头 要具有描述性 要区分大小写 禁止 ...
- 我的2013 Q.E.D
"旧历的年底毕竟最像年底,村镇上不必说,就在天空中也显出将到新年的气象来.灰白色的沉重的晚云中间时时发出闪光,接着一声钝响,是送灶的爆竹:近处燃放的可就更强烈了,震耳的大音还没有息,空气里已 ...
随机推荐
- view上添加点手势 button无法响应点击事件
在view 上添加手势 有的时候 会把Button的 点击事件盖掉,这个 时候 我们用UITapGestureRecognizer的代理方法 //手势的代理方法 - (BOOL)gestureRec ...
- 【转载】UML用例图
用例图主要用来描述“用户.需求.系统功能单元”之间的关系.它展示了一个外部用户能够观察到的系统功能模型图. [用途]:帮助开发团队以一种可视化的方式理解系统的功能需求. 用例图所包含的元素如下: 1. ...
- java项目编译有误
classpath component
- 利用DIV+CSS制作网页过程中常用的基本概念及标签使
CSS主要用于对HTML文件功能的补充及扩展,其作用就是对HTML文件中各种排版进行设置,达到对网页中字体.颜色.背景.图片等的控制,使网页能够完全依照设计者的想法来显示. CSS可以控制网页的显示, ...
- Python-2.7.11+Django-1.9.4安装配置
1.去python官网下载2.7的最新版本 https://www.python.org/downloads 1.1 解压Python-2.7.11.tgz tar xvf Python-2.7.11 ...
- Hide a Subpage Using PeopleCode
There was a question asked on the forum on how to hid a subpage. There is no Peoplecode function to ...
- 【Winform】DataTable绑定到ComboBox
我们从数据库中查询出来的数据存放在Datatable中 1.DataTable绑定到ComboBox上 cmbRole.DataSource = datatable; cmbRole.DisplayM ...
- JMeter2.13进行压力测试
1.安装 2. 样本数目 总共发送到服务器的请求数. 最新样本 代表时间的数字,是服务器响应最后一个请求的时间 吞吐量 是服务器每分钟处理的请求数. 平均值 是总运行时间除以发送到服务器的请求数. 中 ...
- C语言警告:warning C4018: “<”: 有符号/无符号不匹配
问题如下: 代码出问题之处: 原因分析: strlen返回一个无符号整型,也就是unsigned型,比较时应该两边的数据类型相同,故严格上来说,应该将m定义为unsigned型. 修改 ...
- Python脚本控制的WebDriver 常用操作 <七>浏览器前进和后退操作
下面将使用WebDriver来控制浏览器的前进和后退操作 测试用例场景 此操作和get.url()方法功能相同 Python脚本 # coding=gbk ''' Created on 2013年12 ...