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

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

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

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

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. Tomcat配置虚拟主机后的登录验证码问题

    先描述一下问题现象,在本地测试运行一个java web网站,一切正常.但把网站部署到Linux服务器上后,发现登录出了问题,提示验证码输入不正确.登录时需要输入验证码,而验证码的原值是先存入sessi ...

  2. PHP数组在HTML之中的应用

    <select name="data[status]" id="" <?php if(in_array($list['status'],array( ...

  3. java android 中的Toast

    package com.example.my1; import android.os.Bundle;import android.app.Activity;import android.content ...

  4. 部署到iis后,发现无法加载运行CSS文件

    解决方法: 打开或关闭window功能中的Internet信息服务里的万维网服务=>常见HTTP功能=>静态内容

  5. WCF 内存入口检查失败

    WCF 内存入口检查失败 Memory gates checking failed   异常信息:内存入口检查失败,因为可用内存(xxx 字节)少于总内存的 xx%.因此,该服务不可用于传入的请求.若 ...

  6. Oracle 查看相关优化器参数

    select x.ksppinm name, y.ksppstvl value, y.ksppstdf isdefault, decode(bitand(y.ksppstvf, 7), 1, 'MOD ...

  7. Learning Scrapy笔记(七)- Scrapy根据Excel文件运行多个爬虫

    摘要:根据Excel文件配置运行多个爬虫 很多时候,我们都需要为每一个单独的网站编写一个爬虫,但有一些情况是你要爬取的几个网站的唯一不同之处在于Xpath表达式不同,此时要分别为每一个网站编写一个爬虫 ...

  8. linuxok6410的I2C驱动分析---用户态驱动

    3  i2c-dev 3.1 概述 之前在介绍I2C子系统时,提到过使用i2c-dev.c文件在应用程序中实现我们的I2C从设备驱动.不过,它实现的是一个虚拟,临时的i2c_client,随着设备文件 ...

  9. hdu 4609 3-idiots <FFT>

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4609 题意: 给定 N 个正整数, 表示 N 条线段的长度, 问任取 3 条, 可以构成三角形的概率为多 ...

  10. ref和out的区别

    ref类型参数是按地址传递,能改变原来的数值.使用ref传参前,变量必须赋值. 带有ref类型参数的函数,不会清空变量,所以离开该函数的时候,所有ref引用的变量可以赋值也可以不赋值. out类型参数 ...