初次认识 nicEdit
是一个偶然。 (下面简称nicEdit为nE)
我正为所见即所得编辑器不能方便的满足我的需求郁闷,而手工写插件的方式又和我的需求不配套的时候,在JE的新闻 9个最好的Rich Text编辑器
里第一个就是她了。
虽然 withyou 说
引用
NicEdit 这是一个发布不久的编辑器,有些复杂,整个文件大小超过200KB,它集成了许多标准的编辑器功能,它很容易整合和使用。
不过在我看过 nE 的演示的时候我发现这正式我需要的 inline web editor .
下载, 粗略的试用了一下,我真的喜欢上 nE 了。
她的代码结构很好,而且感觉上一点也不复杂,反而是简单的很。
简单的我顺手就做了按钮的汉化和扩展了一个valueEvent,
原来nicEdit对于Event的处理是没有返回值的,而我需要一个返回值的事件,所以就扩展了一个,而且实际的使用了一下,运行完全符合我的设想。 这一切化了不到半天的时间。
扩展如此的方便,说她 有些复杂 显然不合适,应该说 易扩充 , 很安逸 。
但是对于我随手写的代码是否符合作者的整体思路呢?
那就研读一下她的代码,窥探一下作者的思路吧。
看看nE的源代码目录 。
组织的很好,一看就知道,
第一步要看的是 nicCore 目录。
发现 bkLib 是一切的开端,就从她看起吧!
先看看她的第一个函数: bkExtend
var bkExtend = function(){ var args = arguments; if (args.length == 1) args = [this, args[0]]; for (var prop in args[1]) args[0][prop] = args[1][prop]; return args[0]; };
Extend是扩展了,bk是什么?偶猜测是作者 Brian Kirchoff 的缩写吧.
这个函数的功能倒是很明确.根据参数的个数来扩展一个对象.参数个数:
0:当然是返回undefined了.
1:扩展对象是this=传入对象的父级对象,并把参数扩展到this对象。
>1:扩展对象是第一个参数 args[0],,并把参数扩展到args[0]对象。
初识就先写这么多吧.