Spell Checking for CKEditor - With No Adverts!
Spellchecking CKEditor
Javascript Spell Check provides allows you to spell-check CKEditor using the $Spelling.SpellCheckInWindow function.
To Spell-check every CKEditor instance on the page:
$Spelling.SpellCheckInWindow('editors')
To Spell-check one CKEditor instance
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.
How to do it properly...
$Spelling.SpellCheckInWindow('cke_1_contents') // or cke_2_contents....
<script src="http://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.0.1/ckeditor.js"></script> <script> CKEDITOR.replace( 'myTextArea' ); </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:
| Live Demo With Source Code... |
$Spelling.BinSpellCheckFields(Fields) | Spell checks one or more fields in your page - and returns bool:
| 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.
|
$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.
|
$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:
|
$Spelling.PopUpStyle
| string | "modal" | SpellCheckInWindow pop-up style:
See the custom PopUps And Themes Tutorial.
|
Events
Event | Description | Example |
---|---|---|
onDialogOpen() | SpellCheckInWindow dialog pops up. | $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onDialogComplete() | SpellCheckInWindow dialog completes successfully - user has not quit | $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onDialogCancel() | SpellCheckInWindow dialog completes is quite by the user | $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onDialogClose() | SpellCheckInWindow dialog closes for any reason | $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onChangeLanguage(language) | SpellCheckInWindow or SpellAsYouType language is changed by the user.
| $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onIgnore(word) | A word is ignored by the user in wither SpellCheckInWindow or SpellAsYouType.
| $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onIgnoreAll(word) | The user clieck 'Ignore All' for a word in either SpellCheckInWindow or SpellAsYouType.
| $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onChangeWord(from,to) | The user changes a word in either SpellCheckInWindow or SpellAsYouType.
| $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onChangeAll(from,to) | The user clicks 'Change All' for a word in SpellCheckInWindow.
| $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onLearnWord(word) | The user "Adds to Dictionary" in either SpellCheckInWindow or SpellAsYouType.
| $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onLearnAutoCorrect(from,to) | The user adds to autocorrect in SpellCheckInWindow.
| $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
onUpdateFields(arrFields) | Any field is updated due to spellchecing.
| $Spelling.PopUpStyle="modeless";
o = $Spelling.SpellCheckInWindow('all'); |
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').spellAsYouType(options) | Spelling Instance Object | Causes any texarea(s) selected to underline any misspelled words - and provides spelling suggestions on right click.
|
$('#mySelction').binSpellCheckFields(options) | *True if all fields are spelled correctly
| Spell checks all field in the selection.
|
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.
|
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:
|
popUpStyle | "auto" | spellCheckInDialog pop-up style:
See the customPopUps And Themes Tutorial. |
- "Hello World" Basic Demo
- Creating a JavaScript Spell Checker Button
- JavaScript Spell-As-You-Type
- How to Target One, Multiple or All Fields for SpellChecking
- Proof of Exceptional Performance
- HTML Editor Integration (CKE, FCK, MCE, etc...)
- Internationalization & Translations in Over 40 Languages
- JavaScript Events Model
- Custom CSS Themes and PopUps
- Maximum Length and Character Count with Spell TeaxtAreas
- AJAX Spell Check
- Synchronous JavaScript SpellCheck() function
- Form Validation "On Submit"
- Live Field *Validators
- Using JavaScript SpellCheck as a jQuery SpelllCheck Plugin
Download the Spell Checker Plugin »
CKEditor Spell Checking with JavaScript SpellCheck
CKEditor (also known as CKE) is probably the worlds most popular web based HTML editor or WYSIWYG. It allows users to edit rich content in their browser in much the same way they might use MS Word - visually producing HTML code from user input.
CKEditor’s build in spellchecker is implemented by spellchecker.net. This is an amazing free service - but it has 3 major drawbacks for developers:
Advertising: The spellchecker.net spellchecking solution which ships with CKEditor puts advertising popups all over you screen. The adverts are there to ‘fund’ the spell-checking web-service but are not really appropriate for any business, intranet, extranet or serious website application.
Security: The spellchecking is processed off-server - meaning that every single document edited using CKEditor using the default spellchecker is sent off site (out of your intranet) to a 3rd party server. This is clearly not ideal for high security applications such as Intranets or Extranets.
Cost: Those annoying adverts can be removed - but there is a price tag. That price (last we checked) was $3000 per year per server. This could amount to tens of thousands of dollars a year for a large scale website or intranet.
JavaScriptSpellCheck provides an easy to use, cross platform spell check solution for CKeditor with none of the above issues. If you have never used JavaScript Spellcheck before, it is the industry leading spellchecker solution websites and secure intranets.
JavaScriptSpellCheck has been developers to work with CKEditor in such as way that there are
Alternatave spellcheck plugins for ckeditor include the nanospell ckeditor spellchecking plugin.
Integrating JavaScriptSpellcheck to spellcheck your CKEditor instances should take about 5 minutes, and could improve usability and security of any website, intranet or extranet.