这三个都是开源的HTML所见即所得(WYSIWYG)编辑器,下面简单地做一个比较。
FCKEditor和TinyMCE都是非常老牌的了,我接触web开发的时候它们看起来都已经非常成熟了。TinyMCE至今仍然是WordPress的默认可视化编辑器。
但是老牌的不一定是好的,它们在长年累月的积累中,吸纳了各种各样的需求,最后形成一个大而全的系统,无所不能。于是它们庞大而笨重,分别看一下它们的demo页吧,它们可能是要决心与微软的Word软件竞争,而不是给开发者提供一个适合浏览器环境的编辑器。
各种命令都带有一堆看似合理实际上毫无用处的选项,对于开发者要面对的用户,更是会让他们无所适从。例如要插入图片,弹出的窗口里,有”alternative text”, “vertical space”, “title”, “horizontal space”等参数,有些连熟悉web开发的人都感到陌生,更不用说普通用户了。
当然了它们都号称customizable,然而我确定这是有限的。以我使用FCKeditor的经验,要想在插入图片窗口删除那些无用的参数,仅保留一个链接地址的输入,就必须在它的源代码中做修改,而不是配置文件。修改源代码必然造成升级的困难。
庞大的代码蕴含着丰富的功能,而我们只用其一小部分,这对于带宽来说明显是个浪费。没有具体数过,根据我的印象,它们至少应该有数以百计的小文件吧,简直无法忍受。
这两个大家伙早期的时候还更过分,按钮的图片都是一张一张的,打开页面时就看到它们像多米诺骨牌一样依次展开。以前它们都使用window.open打开一个新窗口显示文本对象的属性,在许多情况(大多是个别用户客户端的问题)下,弹出的窗口大小有问题而且用户无法调整,反馈给我们也束手无策。还好这两个问题现在都已经解决,CSS sprite被使用,选项窗口也使用div来模拟实现,这两点是值得肯定的进步。
————反衬结束,主角登场————
上一个项目要选择编辑器的时候,我死活不想再用FCKeditor了。在网上做了许多搜索,刚好发现一个新出现的编辑器:NicEdit.
What is NicEdit?
NicEdit is a Lightweight, Cross Platform, Inline Content Editor to allow easy editing of web site content on the fly in the browser.
NicEdit Javascript integrates into any site in seconds to make any element/div editable or convert standard textareas to rich text editing.
轻量级是最大的优点。此外它还有许多优良的特性,比如输入框随文本自动拉高,良好的扩展性等。用它来实现了插入自定义表情的功能,非常简单、优美。
不用多说了,把前面提到的那两个编辑器的缺点反过来,主语换成NicEdit放在这里就可以了。
嗯,我就是要唱衰FCKEditor/TinyMCE,力挺NicEdit.
也许FCKEditor/TinyMCE曾经也像NicEdit一样小巧玲珑?希望NicEdit能够守住贞操,不要被那些永无止境的Feature request给f*ck了。FCKEditor不会就是这样得名的吧?-joke.
NicEdit现在还不是很完美,但是它在不断改进。如果你要用,建议先逛一下它的论坛,看看大家都遇到了什么问题,对你关键不关键。