Spell Checking Rich HTML Editors

Spellchecking Any HTML Editor


Javascript Spell Check provides allows you to spell-check almost every major Rich HTML editor including CKEditor, TinyMCE, FCKEditor using $Spelling.SpellCheckInWindow. Note that SpellCheckInWindow is possible with rich editors, but SpellCheckAsYouType is not currently possible.


To Spell-check every rich editor on the page:

$Spelling.SpellCheckInWindow('editors')


To Spell-check one rich editor:

To selectively target a rich editor - you cannot pass the Id of the textarea it replaces - as most editors are unaware of changes to the fields that they override.

Method 1

Put a span around the targeted textarea and spellcheck the span by id. JavaScript SpellCheck will look inside the span and find the rich editor.


<span id='spellSpan'>
<textarea>Texteara that will be overwritten by the rich editor</textarea> 
</span>

<input type="button" value="Spell Check" onclick="$Spelling.SpellCheckInWindow('spellSpan')" />


Method 2 (advanced)

Pass the ID of the iframe created by the Editor (use firebug to find this)


<input type="button" value="Spell Check" onclick="$Spelling.SpellCheckInWindow('EditoriFrameId')" />


<script type='text/javascript' src='/JavaScriptSpellCheck/include.js' ></script>
<textarea name="myTextArea"  id="myTextArea" cols="30" rows="4">Hello Worlb.</textarea> 
 
<script type="text/javascript" src="/_tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">tinyMCE.init({mode : "textareas"});</script>
 
<input type="button" value="Spell Check" onclick="$Spelling.SpellCheckInWindow('editors')" />

Installation

Getting started with JavaScript spell check is very simple.

  • Download JavaScriptSpellCheck.zip
  • Unzip the package
  • Copy the " JavaScriptSpellCheck" folder to the root folder of your website; its URL should be "/JavaScriptSpellCheck"
  • Note: If you are using an ASP.Net server - copy ASPNetSpell.dll to the "/bin/ASPNetSpell.dll"
  • Open "/ JavaScriptSpellCheck/02-TestInstall.html" in your browser to test the installation.
  • Copy the source code form this example into one of your own web pages.

Primary Functions

Function Description Example
$Spelling.SpellCheckInWindow(Fields) Opens a spellchecking dialog window Live Demo With Source Code...
$Spelling.SpellCheckAsYouType(Fields) Causes any texarea(s) to underline any misspelled words - and provides spelling suggestions on right click. Live Demo With Source Code...
$Spelling.LiveValidation(Field,MessageElementId) Shows a warning message beside Field when it contains spelling errors. Live Demo With Source Code...


Real-Time Spell Checking Functions

Function Description Example
$Spelling.BinSpellCheck(input) Returns bool:
  • True if input is in the dictionary
  • False if it is not.
Live Demo With Source Code...
$Spelling.BinSpellCheckFields(Fields) Spell checks one or more fields in your page - and returns bool:
  • True if all fields are spelled correctly
  • False if the fields contain spelling errors.
Live Demo With Source Code...
$Spelling.SpellCheckSuggest(input) Returns an array of spelling suggestions for input. Live Demo With Source Code...
$Spelling.ListDictionaries() Returns an array of currently installed dictionaries in your JavaScriptSpellCheck/dictionaries folder. Live Demo With Source Code...

AJAX Spell checking Functions

Function Description Example
o = $Spelling.AjaxSpellCheck(input);

o.onSpellCheck = function(result,suggestions){}

Spellchecks a word and asynchronously returns a boolean spellchecking result and suggestions. Live Demo With Source Code...
o = $Spelling.AjaxSpellCheckFields(Fields)

o.onValidate = function(result){}

Spell checks one or more fields in your page - and returns asynchronously a boolean spellchecking result. Live Demo With Source Code...
o = $Spelling.AjaxDidYouMean(string)

o.onDidYouMean = function(result){}

Asynchronously returns an suggestions string for a search box spellchecking phrase. Live Demo With Source Code...

Properties

Property Type Default Value Description
$Spelling.DefaultDictionary string "English (International)" The dictionary language used by JavaSript SpellCheck.
$Spelling.UserInterfaceTranslation string "en" Translates the context menu and spellchecker dialog into over 50 international languages.
  • See our translations page for a full list of language locale codes.
$Spelling.ShowStatisticsScreen bool false Shows a statistics screen (word count, edit count) after SpellCheckInWindow.
$Spelling.SubmitFormById string "" Will submit a form (identified by its id attribute) once spellchecking once SpellCheckInWindow is complete.
$Spelling.Theme string "js.modern" Allows you to apply a CSS theme to change the appearance of JavaScript SpellCheck.
  • Corresponds to theme folder in /JavaScriptSpellCheck/themes
$Spelling.CaseSensitive bool true Spellchecker notices cAse mIstAkes
$Spelling.IgnoreAllCaps bool true Spellchecker ignores BLOCK CAPITAL letters which are often acronyms.
$Spelling.CheckGrammar bool true Spellchecker notices basic grammar mistakes such as sentence casing and repeated words.
$Spelling.IgnoreNumbers bool true Spellchecker ignores words with numbers in them like "High5" or "MSO7262BGO"
$Spelling.ShowThesaurus bool true Spellchecker shows a thesaurus and look-up-meaning link during SpellCheckInWindow
$Spelling.ShowLanguagesInContextMenu bool false Allows the user to pick a dictionary Language from all installed dictionaries during SpellCheckAsYouType
$Spelling.ServerModel string "auto" Allows you to pick which server model JavaScriptSpellCheck will use for its AJAX requests. Values available are:
  • 'php' - PHP
  • 'asp' - classic ASP
  • 'asp.net' - ASP.net 2 or above raw request handler
  • 'aspx' - ASP.net 2 or above ASPX page
  • 'auto' automatically detects the best choice in the vast majority of cases.
$Spelling.PopUpStyle




string "modal" SpellCheckInWindow pop-up style:
  • "modal" - a modal dialog window
  • "modeless" - a modeless dialog window
  • "popup" - a normal popup
  • "modalbox" - prototype style JavaScript modal pop-up.
  • "fancybox" - jquery style JavaScript modal pop-up.

See the custom PopUps And Themes Tutorial.


Events

Event Description Example
onDialogOpen() SpellCheckInWindow dialog pops up. $Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onDialogOpen = function(){}

onDialogComplete() SpellCheckInWindow dialog completes successfully - user has not quit $Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onDialogComplete = function(){}

onDialogCancel() SpellCheckInWindow dialog completes is quite by the user $Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onDialogCancel = function(){}

onDialogClose() SpellCheckInWindow dialog closes for any reason $Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onDialogClose = function(){}

onChangeLanguage(language) SpellCheckInWindow or SpellAsYouType language is changed by the user.
  • Language name is passed as a string
$Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onChangeLanguage = function(language){}

onIgnore(word) A word is ignored by the user in wither SpellCheckInWindow or SpellAsYouType.
  • Word is passed as a string
$Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onIgnore = function(word){}

onIgnoreAll(word) The user clieck 'Ignore All' for a word in either SpellCheckInWindow or SpellAsYouType.
  • Word is passed as a string
$Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onIgnoreAll = function(word){}

onChangeWord(from,to) The user changes a word in either SpellCheckInWindow or SpellAsYouType.
  • "from" and "to" are passed as strings
$Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onChangeWord = function(from,to){}

onChangeAll(from,to) The user clicks 'Change All' for a word in SpellCheckInWindow.
  • "from" and "to" are passed as strings
$Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onChangeAll = function(from,to){}

onLearnWord(word) The user "Adds to Dictionary" in either SpellCheckInWindow or SpellAsYouType.
  • Word is passed as a string
$Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onLearnWord = function(word){}

onLearnAutoCorrect(from,to) The user adds to autocorrect in SpellCheckInWindow.
  • "from" and "to" are passed as strings
$Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onLearnAutoCorrect = function(from,to){}

onUpdateFields(arrFields) Any field is updated due to spellchecing.
  • arrFields is returned - an array of the Ids of all updated fields.
$Spelling.PopUpStyle="modeless";

o = $Spelling.SpellCheckInWindow('all');
o.onUpdateFields = function(arrFields){}



jQuery Functions & Options

JavaScriptSpellCheck also provides a jQuery SpellCheck Plugin

jQuery Functions


Function Return Value Description
$('#mySelction').spellCheckInDialog(options) Opens a spellchecking dialog window Spelling Instance Object
  • #mySelction can be any jQuery selection of elements
$('#mySelction').spellAsYouType(options) Spelling Instance Object Causes any texarea(s) selected to underline any misspelled words - and provides spelling suggestions on right click.
  • #mySelction can be any jQuery selection of elements
$('#mySelction').binSpellCheckFields(options) *True if all fields are spelled correctly
  • False if the fields contain spelling errors.
Spell checks all field in the selection.
  • #mySelction can be any jQuery selection of elements


jQuery Options


Option Default Value Description
defaultDictionary "English (International)" Default dictionary the spell checker will use.
userInterfaceTranslation "en" Translates the spellchecker dialog into over 50 international languages automatically.
showStatisticsScreen true Shows statistics such as word count and number of edits after spellCheckInDialog is complete.
submitFormById "" javascript id of a form to submit after spellCheckInDialog is complete.
theme "modern" CSS theme to apply to the spellchecker.
  • Relates to a folder in "JavaScriptSpellCheck/themes"
  • Learn more...
caseSensitive true Catches spelling mistakes caused by iNcoorect CasIng.
checkGrammar true Catches basic grammar mistakes such as repeated words, sentence casing and punctuation
ignoreAllCaps true Ignores BLOCK CAPS which are often abbreviations or product codes.
ignoreNumbers true Ignores w0rds w1th num8rs in them which are often product codes.
showThesaurus true Shows a thesaurus and word meaning lookup during spellCheckInDialog
showLanguagesInContextMenu true Allows the user to change dictionary 'on the fly' when using spellAsYouType
serverModel "auto" Chooses the server model that does the 'behind the scenes' AJX spellchecking requests. We support:
  • 'php' - PHP or above
  • 'asp' - classic ASP
  • 'asp.net' - ASP.net 2 or above raw request handler
  • 'aspx' - ASP.net 2 or above ASPX page
  • 'auto' automatically detects the best choice in the vast majority of cases.
popUpStyle "auto" spellCheckInDialog pop-up style:
  • "modal" - a modal dialog window
  • "modeless" - a modeless dialog window
  • "popup" - a normal popup
  • "modalbox" - prototype style JavaScript modal pop-up.
  • "fancybox" - jQuery JavaScript modal pop-up.

See the customPopUps And Themes Tutorial.

Also see our other spellchecking plugins for CKEditor, TinyMCE Editor, ASP.Net, Classic ASP, jQuery & PHP