Использование Javascriptspellcheck с Ckeditor - Не могу назвать CKEditor ID текстовой области - PullRequest
0 голосов
/ 10 января 2012

Я обновляю некоторый устаревший код для поддержки CKEditor из FCKEditor, в классическом asp. По профессии я не классический дизайнер жерехов, поэтому я летаю здесь, рядом с штанами. Ранее мы использовали Javascriptspellcheck для проверки орфографии. У меня проблема связана с этим старым кодом:

function doSpellCheck() {
    var oSpell = new JavaScriptSpellCheck();
    oSpell.callBack = function() {
        oEditor.SetHTML($('POST_MESSAGE').value);
    }
    oEditor.UpdateLinkedField();
    oSpell.spellCheckWindow('POST_MESSAGE');
}

oEditor - это экземпляр FCKEditor, определенный в функции fckeditor_oncomplete (). Новый код, который я пытаюсь использовать, выглядит следующим образом:

    function doSpellCheck() {
    oSpellEditor = CKEDITOR.instances['POST_MESSAGE'].getData();

    var oSpell = new JavaScriptSpellCheck();
    oSpell.callBack = function() {
        CKEDITOR.instances['POST_MESSAGE'].Setdata(oSpellEditor);
    }

    oSpell.spellCheckWindow('POST_MESSAGE');
}

Проблема, с которой я, похоже, сталкиваюсь, заключается в том, что JavaScriptSpellCheck (); нужен идентификатор textarea экземпляра ckeditor. Я попытался следовать указаниям This Post и ответу nemisj, но у меня возникли проблемы с кодом. Я не совсем понимаю DOM или как манипулировать им в этом случае. Я знаю, что это не asp, для создания экземпляра ckeditor я использую настраиваемую подпрограмму asp для его создания, но это область, с которой у меня возникают проблемы.

* РЕДАКТИРОВАТЬ: нашел ответ. Там, где я создаю новый CKEditor, мне нужно было добавить атрибуты текстовой области следующим образом:

Set pageEditorTop = New CKEditor

' Change default textarea attributes
set textareaAttributes = CreateObject("Scripting.Dictionary")
textareaAttributes.Add "id", "POST_MESSAGE"
Set pageEditorTop.textareaAttributes = textareaAttributes

1 Ответ

0 голосов
/ 10 января 2012

Тот код, который вы пытаетесь использовать, не имеет смысла.

Это прямой порт исходного кода в CKEditor:

function doSpellCheck() {
  var oEditor = CKEDITOR.instances['POST_MESSAGE'];
  var oSpell = new JavaScriptSpellCheck();
  oSpell.callBack = function() {
      oEditor.setData($('POST_MESSAGE').value);
  }
  oEditor.updateElement();
  oSpell.spellCheckWindow('POST_MESSAGE');
}
...