为Web站点添加拼写检查功能
许多开发者都提出“如何对用户输入的内容进行拼写检查”的问题,这篇文章正好提供了一个有用的方法,讨论如何使用XDE拼写检查组件,它既可以当作拼写检查器,同时也可以做完一个字典。关于这个组件的一个好消息是:它能够在服务器端使用,或者做为一个Java Applet。但是有一点,这些方便之处不是免费的,它要花费大约100美元。然而,该组件提供了一个30天免费使用评估版本,所以在真正决定购买前,你可以仔细进行测试,认真考虑是否满足需要。
首先,访问点,输入一些信息(名字、电子邮件,等等),下载并安装这个组件。下一步,从可供下载的XDE众多组件中选择 “Quick Spell Check Full Install”项目进行下载。下载完毕后,进行安装。在安装程序结束前,出现一个注册登记菜单,这时,简单地选择默认选择“Evaluation Period”。
注意,现在的程序还是BETA版本。如果你不希望发生潜在的错误,我建议等第一个正式版本出来后再下载进行试验。我已经发现了现有版本的一些错误。你要记住:这是一个BETA版本,不要在正式站点上应用。
接着,准备注册登记组件。现在决定一下你是否想要包含Word 97的字典和词典功能,如果需要,请先在Web服务器上安装Word 97或者Word 2000,然后参照 的说明执行一套特殊的命令。如果不想使用整个Word 97的字典,就象注册其他组件一样接着进行:
拷贝DLL文件SpellCheckServer.dll到Windows的System或者System32目录
使用regsvr32注册组件:regsvr32 spellcheckserver.dll
现在安装完组件,可以在ASP代码中使用了。为了创建使用拼写检查对象的示例,仅仅简单的编写下面的代码:
Set objSpellCheck = Server.CreateObject("SpellCheck.ClsChecker")
如我前面提到的,这个组件提供了拼写检查和词典的功能。首先,来看看如何返回给定单词的一系列同义词。这要使用到LookupSynonym方法,该方法需要一个参数,就是需要寻找同义词的单词。执行后,拼写检查对象收集相关的单词到集合对象SynonymWords。执行下面的代码,将返回“Quick”单词的所有同义词:
< %
Dim objSpellChecker, iLoop
’Create an instance of the SpellChecker
Set objSpellCheck = Server.CreateObject("SpellCheck.ClsChecker")
objSpellChecker.UseMSWord = False ’We’re not using MSWord
objSpellChecker.LookupSynonym "Quick" ’Lookup the synonym for "quick"
’Loop through the returned words:
Response.Write "The following synonyms for ’Quick’ exist: "
For iLoop = 1 To objSpellChecker.SynonymWords("Quick").SuggestedWords.Count
Response.Write objSpellChecker.SynonymWords("Quick").SuggestedWords(iLoop).word
Response.Write " "
Next
%>
在服务器端执行拼写检查对于代码结构是非常紧凑的,但以我只见,要发挥强大的功能,必须依赖Java applet形式的拼写检查。以下将重点讨论如何应用这种方式,关于在服务器端使用组件的方法,请参见 。
为了使用Java applet,需要将安装目录下的.class文件拷贝到一个web可访问目录。比如,这里将文件移动到/spellcheck目录下。然后,创建一个表单,包含一个文本框或者文本域,其中是要进行拼写检查的内容。
< HTML>
< BODY>
< FORM NAME="frmSpellCheckExample">
< textarea name="JavaTextArea" rows="8" cols="50">< P>
< INPUT TYPE="button" value="Start Spell Check" >
接着,使用APPLET标记来引用Java applet:
< applet codebase ="/spellcheck/" code="SpellCheck.class"
height="1" name="spellcheck" width="1"
ALT="Applet not displayed">
< param name="foreground" value="FFFFFF">
< param name="background" value="008080">
< param name="label" value="This string was passed from the HTML host.">
注意:在APPLET标记中的codebase参数指向.class文件所在的目录。
最后,在客户端使用一段javascript代码来组装applet参数:
< script language="javascript">
function SpellCheck() {
document.spellcheck.ptexttocheck =
document.frmSpellCheckExample.JavaTextArea.value;
document.spellcheck.doDlg();
if (document.spellcheck.fixedtext!="") {
document.frmSpellCheckExample.JavaTextArea.value =
document.spellcheck.fixedtext;
}
}
这就完成了!如果想更多地了解如何使用该组件和Java Applet,一定来下面的地方看看: