Speller Pages 的拼写检查能力来自什么程序?
更新时间
Speller Pages 本身不执行拼写检查。它是一套开源的 Web 用户界面和 JavaScript 库,真正的拼写检查由服务端程序完成,而它把 GNU Aspell 的拼写建议能力带给网站用户。服务端提供 PHP 或 Perl/CGI 两种版本,前端通过 JavaScript 调用服务端脚本,检查结果再返回给页面。
各部分的职责
| 组成部分 | 负责什么 | 技术形态 |
|---|---|---|
| 前端界面与库 | 收集待检查文本、发起检查请求、展示拼写建议 | JavaScript(spellChecker.js) |
| 服务端脚本 | 接收文本、调用拼写检查程序、返回结果 | PHP 或 Perl/CGI |
| 拼写检查程序 | 实际执行拼写检查并给出建议 | GNU Aspell |
也就是说,拼写建议的质量取决于 GNU Aspell,而不是 Speller Pages 自己实现了一套词典或纠错算法。Speller Pages 的价值在于把这套能力接到浏览器里的 HTML 文本输入框上。
为什么这样分层
浏览器端无法直接运行 GNU Aspell 这类服务端程序,所以需要一次请求—响应:JavaScript 把文本输入框的内容交给服务端脚本,服务端脚本调用 Aspell 得到建议,再把结果返回页面渲染。Speller Pages 把这条链路封装好,你只需要引入脚本并调用构造函数。
集成方式
按网站说明,集成只需三步:
- 把服务端脚本、HTML 和 JavaScript 文件复制到你的 Web 服务器。
- 在包含待检查输入框的 HTML 页面中,加入少量 JavaScript 代码。
- 在“检查拼写”按钮触发时调用检查方法。
官方给出的调用示例是:
<script language="javascript" type="text/javascript" src="spellChecker.js"></script>
<script language="javascript" type="text/javascript">
function openSpellChecker() {
// 取得要检查的 textarea
var txt = document.myform.mytextarea;
// 把 textarea 的引用交给 spellChecker 对象
// 构造函数可以传入任意数量的文本对象
var speller = new spellChecker( txt );
// 启动检查
speller.openChecker();
}
</script>
预期结果是:点击按钮后,spellChecker 对象拿到指定文本输入框的引用,openChecker() 启动检查流程,由服务端完成实际检查并返回建议。构造函数支持传入多个文本对象,因此一次可以覆盖页面上的多个输入区域。
适用场景与前提
它适合 Web 邮件程序、留言板软件或基于 Web 的内容管理系统——凡是需要检查一个或多个 HTML 文本输入框中单词拼写的地方。前提是服务器能运行 PHP 或 Perl/CGI,并且服务端具备 GNU Aspell 的拼写检查能力。
获取与验证
Speller Pages 是免费、开源的,托管在 SourceForge 上,完整信息见其 SourceForge 项目页;当前最稳定版本可在 SourceForge 下载。想先确认效果,可以试用开发版本的在线演示,也可以直接查看演示页的 HTML 源码,核对集成代码是否如上面所示那样简单。