如何把 Speller Pages 集成到自己的网站?

更新时间

Speller Pages 是一个免费、开源的 Web 拼写检查前端,由 Web 用户界面和 JavaScript 库组成,后端调用服务端拼写检查程序 GNU Aspell,提供 PHP 和 Perl/CGI 两种版本。集成方式很直接:把服务端脚本、HTML 和 JavaScript 文件复制到你的 Web 服务器,再在包含待检查输入框的页面上加少量 JavaScript 代码,点击“检查拼写”按钮时调用检查函数即可。它适合 Web 邮件程序、留言板软件或基于 Web 的内容管理系统,也就是任何需要对一个或多个 HTML 文本输入框做拼写检查的场景。

集成前需要确认的前提

  • 你的网站有可运行服务端脚本的环境,并能使用 PHP 或 Perl/CGI 版本中的一种。
  • 服务器上具备 GNU Aspell,Speller Pages 依赖它提供拼写建议能力。
  • 你能够修改目标页面的 HTML,并可以上传 JavaScript 文件到 Web 服务器。
  • 待检查的内容位于 HTML 文本输入框(例如 textarea)中,而不是纯静态文本。

集成步骤

1. 获取文件

从 SourceForge 项目页下载当前最稳定的版本。页面说明 Speller Pages 托管在 SourceForge,完整细节以项目页为准;站内也提供开发版本的在线演示,可先试用再决定。

2. 复制文件到 Web 服务器

把服务端脚本、HTML 和 JavaScript 文件复制到你的 Web 服务器上。这些文件构成拼写检查的前端界面与后端调用链路,缺一不可。

3. 在目标页面引入 JavaScript

在包含待检查输入框的 HTML 页面中加入对 spellChecker.js 的引用,并定义触发检查的函数。官方演示页的写法是:先取得要检查的 textarea,再把它传给 spellChecker 构造函数,最后调用 openChecker() 启动检查。构造时可以传入任意数量的文本对象作为参数,也就是说一次可以检查多个输入框。

<script language="javascript" type="text/javascript" src="spellChecker.js"></script>
<script language="javascript" type="text/javascript">
function openSpellChecker() {
  // 取得要检查的 textarea
  var txt = document.myform.mytextarea;
  // 把文本对象引用传给 spellChecker,可传入任意多个
  var speller = new spellChecker( txt );
  // 启动检查
  speller.openChecker();
}
</script>

4. 绑定“检查拼写”按钮

把上面的 openSpellChecker() 绑定到页面上的“检查拼写”按钮。点击后,Speller Pages 会把输入框中的文字交给服务端拼写检查程序,并返回拼写建议供用户处理。

5. 验证

访问包含输入框的页面,输入一段含拼写错误的文字,点击“检查拼写”按钮,确认能弹出检查界面并给出建议。官方建议直接查看演示页的 HTML 源码,对照自己的写法,因为演示页的集成代码“基本上就是几行需要在点击按钮时执行的代码”。

常见卡点

  • 只加了前端没放服务端脚本:JavaScript 只是界面和调用入口,真正的拼写建议来自服务端的 GNU Aspell,服务端文件必须一并部署。
  • 构造函数参数写错:传入的应是文本输入对象本身(如 document.myform.mytextarea),而不是它的值。
  • 想检查多个输入框:把多个文本对象一起传给 spellChecker 构造函数即可,不需要为每个输入框单独初始化。
  • 不确定写法是否正确:以官方演示页源码为准,它展示的就是最小可用集成方式。

适合与不适合的场景

场景 是否适合 原因
Web 邮件、留言板、CMS 的输入框 适合 官方明确说明这是它的理想用途
一个页面多个 HTML 文本输入 适合 构造函数支持传入任意数量的文本对象
需要拼写建议质量的场景 适合 借助 GNU Aspell 的拼写建议能力
纯静态页面、无服务端脚本环境 不适合 依赖服务端脚本与 Aspell
非文本输入的内容(如图片、文件) 不适合 检查对象是 HTML 文本输入中的文字

如果你的网站有 PHP 或 Perl/CGI 环境,并且需要在用户输入文字时提供拼写检查,Speller Pages 的集成成本很低,值得先跑一遍官方演示再动手。