0

我阅读了这篇文章,并试图通过 jQuery 将文本简单地添加到我的 CKEditor 中。我正在使用此代码,但它给出了以下错误:

$(document).ready(function(){
    CKEDITOR.instances.txtDESCRIPTION.insertText('some text here');
});

---

<%@ Register TagPrefix="CKEditor" Namespace="CKEditor.NET" Assembly="CKEditor.NET" %>
<CKEditor:CKEditorControl id="txtDESCRIPTION" Toolbar="SplendidCRM" Language='<%# Session["USER_SETTINGS/CULTURE"] %>'  Height="400" BasePath="~/ckeditor/" FilebrowserUploadUrl="../ckeditor/upload.aspx" FilebrowserBrowseUrl="../Images/Popup.aspx" FilebrowserWindowWidth="640" FilebrowserWindowHeight="480" runat="server" />

未捕获的类型错误:无法调用未定义的方法“insertText”

如何简单地将文本“测试”添加到我的 CKEditor?

注意:这使用 CKEditor.NET,而不是 jQuery CKEditor 版本。

4

2 回答 2

1

这是 CKEditor 中的错误的结果,如http://dev.ckeditor.com/ticket/6497所述。作为一种解决方法,我只是在按钮单击时附加文本,如下所示:

$('#myBtn').click(function(){
    CKEDITOR.instances._ctl0_cntBody_ctlEditView_txtDESCRIPTION.insertText('some text here');
});
于 2013-05-28T20:04:37.993 回答
1

你打电话CKEDITOR.replace('txtDESCRIPTION')了吗?

如果是这样,那么oEditor.setData('test')应该做的伎俩。

编辑:

似乎 ckeditor.net 正在重命名 id

从下面评论中的链接

您可以通过查找控件的 ClientID 来解决控件被重命名的问题。我将代码放在代码隐藏中以查找控件的 ID 并为其设置 Javascript。这样,代码就不会受到重新排列窗体上的控件的影响。如果表单上有多个编辑器实例,只需为每个实例调用 InsertEditorJS。

这是代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
    TextBox qiiEditor = (TextBox) FormView1.FindControl("qiiTextBox");
    Literal qiiJS = (Literal) FormView1.FindControl("qiiTextBoxJavascript");
    InsertEditorJS(qiiEditor, qiiJS);
}
protected void InsertEditorJS(TextBox TextBoxCtl, Literal LiteralCtl)
{
    LiteralCtl.Text = "<script type='Text/javascript'>";
    LiteralCtl.Text += "CKEDITOR.replace('";
    LiteralCtl.Text += TextBoxCtl.ClientID;
    LiteralCtl.Text += "');</script>";
}
于 2013-05-24T19:49:16.753 回答