Rich Text Editor (RTE) 是跨浏览器的所见即所得编辑器,特性就不多说了,比较特别有两点:
1、支持 Safari,目前包括 FCKeditor 等都不支持 Safari;
2、轻量级。
不过这个脚本给出的下载包是压缩之后 js 文件,源代码需要购买。因为需要做一些修改,所以源代码是必不可少的。其实对于 JavaScript 的加密、压缩,基本都是可以还原的,虽然有些变量被替换得可读性极差,但方法名、函数名是不可能变的。
下面简单说一下我的解压过程,先看看压缩文件:richtext_compressed.js。这个文件只有一行:
eval(function(p,a,c,k,e,d){ .... )
很明显,所有的有效代码都在 eval() 函数中执行,这个函数里边的一堆代码实际上运行之后的结果是一个字符串,这个字符串就是之前的源代码(可能是压缩之后的),那么我们的目标就是获取到这个字符串。很简单,把 eval() 去掉,在前边加上 var a = …. 这样 eval() 里边的执行结果就给了变量 a,这个变量就是源代码字符串,接下来你可以直接使用 document.write(a); 把 a 打印出来,也可以将 a 赋给一个 textarea 框,我习惯用后边这个方法,因为可以直接拷贝,也不需要处理特殊符号、HTML 标签。
获取到这个代码之后可以发现,其实这已经是完整的源代码了,只不过做了简单的压缩,网上有很多这一类的解压工具,比如 JsDecoder,将获取到的源代码用这类工具解压之后,可读性就出来了。
这里上传了我解压之后的最终版本,richtext.js。(作者挣不到钱不要骂我,呵呵)
devthought 提供的 Fancy Menu 看着真的很不错,像使用 Flash 实现的效果。
看到这篇来自 IBM 的文章标题中出现“有限状态机”,顿时觉得非常亲切,大学的时候有门课叫《编译原理》,其中就讲到有限状态机,基本都忘的差不多了,呵呵。
JavaScript 中的有限状态机,第 1 部分: 设计一个小部件
有限状态机很早就已用作设计和实现事件驱动的程序(比如网络适配器和编译器)内复杂行为的组织原则。现在,可编程的 Web 浏览器为新一代的应用程序开辟了一种全新的事件驱动环境。基于浏览器的应用程序因 Ajax 而广为流行,而同时也变得更为复杂。程序设计人员和实现人员能够大大受益于有限状态机的原理和结构。本篇文章将向您介绍如何使用有限状态机来为一个简单的 Web 小部件 —— 一个能够淡入和淡出的工具提示 —— 设计复杂的行为。
本系列的第 2 部分将描述如何在 JavaScript 内实现此设计,以及如何充分利用 JavaScript 独特的语言特性,比如关联数组和函数闭包。第 3 部分则会涵盖如何使此实现能够在所有流行的 Web 浏览器中正常工作的内容。最终的代码紧凑简练,逻辑清晰透明,动画效果即使在负载极重的处理器上也能平稳流畅。
Synchronizing a Web Client Database: LocalCalendar and Google Calendar
Rich Internet Applications (RIAs) are becoming more and more popular as the capabilities available to internet clients increase. There is a growing demand for RIAs to be able to store rich, structured, searchable data on the same machine as the web browser, and to be able to synchronize this data with a centralized data store running behind the web server.
Thickbox - 基于 jQuery,支持 AJAX,轻量级的而且比较高效。可以在 lightbox 中使用图片或 HTML。大小约为 40k,目前还可作为 WordPress 的插件使用。
GreyBox - 创建 iframe 的弹出界面,可使用图片、HTML 及 URL,大小约为 20k。
GreyBox Redux - 基于 jQuery,比 GreyBox 更轻。
Lightbox v2.0 - 最初是为了显示图片设计的,使用了 prototype 和 sciptaculous,所以有些沉重,但对于图片来说很好用。
Lightbox with moo.fx - 基于 prototype,但只能用于图片。
Lightbox Gone Wild - modal 模式窗口的 lightbox,可使用 html、表单及图片,也是基于 prototype 的,所以有一些 heavy。
Multi-faceted LIghtbox - 又一个基于 prototype 的,不过这个为各种可用于 lightbox 的数据类型提供了选项。
Leightbox - 和 Lightbox Gone Wild 很相似,只是 Leightbox 以 html 方式存放内容,所以可以被搜索引擎索引到。
xilinus - 使用简单,基于 prototype,很容易定制,可使用多种内容选项。
Lightbox Plus - 可以自动根据窗口的大小缩放图片。
Suckerfish Hover Lighbox - 和传统的 lightbox 不一样,它在打开 lightbox 的时候,还可以点击访问页面上的其它元素。
Litebox - 这是 Lightbox 的另一个版本,代码量减少了,使用了 moo.fx 和 prototype-lite,如果页面需要减肥的话,可以选择这个。
LITBox - 使用类写的 lightbox,所以可以创建多个对象实例,并且单独进行控制。基于 Thickbox。