summaryrefslogtreecommitdiff
path: root/lib/scripts/spellcheck.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/scripts/spellcheck.js')
-rw-r--r--lib/scripts/spellcheck.js16
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/scripts/spellcheck.js b/lib/scripts/spellcheck.js
index b5fa35e60..03ca9c364 100644
--- a/lib/scripts/spellcheck.js
+++ b/lib/scripts/spellcheck.js
@@ -262,7 +262,7 @@ function ajax_spell_class(){
}else{
for(var i=1; i<args.length; i++){
text += '<a href="javascript:ajax_spell.correct('+id+',\''+
- qquote(encodeURIComponent(args[i]))+'\')">';
+ qquote(args[i])+'\')">';
text += args[i];
text += '</a><br />';
}
@@ -290,6 +290,11 @@ function ajax_spell_class(){
data = data.substring(1);
if(error == '1'){
ajax_spell.setState('stop');
+ // convert numeric entities back to UTF-8
+ data = data.replace(/&#(\d+);/g,
+ function(whole,match1) {
+ return String.fromCharCode(+match1);
+ });
// replace textbox through div
ajax_spell.showboxObj.innerHTML = data;
ajax_spell.showboxObj.style.width = ajax_spell.textboxObj.style.width;
@@ -315,6 +320,15 @@ function ajax_spell_class(){
*/
this.stop = function(){
var data = this.response;
+
+ // convert numeric entities back to UTF-8
+ data = data.replace(/&#(\d+);/g,
+ function(whole,match1) {
+ return String.fromCharCode(+match1);
+ });
+ // now remove &amp; protection
+ data = data.replace(/&amp;/g,'&');
+
ajax_spell.setState('start');
// replace div with textbox again
ajax_spell.textboxObj.value = data;