使用Javascriptspellcheck和Ckeditor - 不能命名CKEditor Textarea id

时间:2012-01-10 03:14:47

标签: ckeditor fckeditor spell-checking

我正在更新一些遗留代码以支持来自FCKEditor的CKEditor,在经典的asp中。我不是一个经典的asp设计师,所以我在这里坐在裤子的座位上。我们以前使用Javascriptspellcheck来进行拼写检查。我遇到的问题与这个旧代码有关:

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

oEditor是fckeditor_oncomplete()函数中定义的FCKEditor的实例。我试图使用的新代码如下:

    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();需要ckeditor实例的textarea id。我试图按照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 :(得分:0)

您尝试使用的代码没有意义。

这是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');
}