CKEditor.NET通过jQuery追加

时间:2013-05-24 19:45:08

标签: c# ckeditor webforms ckeditor.net

我在这上面阅读了this post,我试图通过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" />
  

未捕获的TypeError:无法调用未定义的方法'insertText'

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

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

2 个答案:

答案 0 :(得分:1)

你有没有打电话给CKEDITOR.replace('txtDESCRIPTION')

如果是,那么oEditor.setData('test')就可以做到这一点。

编辑:

似乎ckeditor.net正在重命名id

来自评论中的link

  

您可以通过查找来解决重命名控件的问题   控件的ClientID。我把代码放在codebehind中找到了   控制的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>";
}

答案 1 :(得分:1)

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

$('#myBtn').click(function(){
    CKEDITOR.instances._ctl0_cntBody_ctlEditView_txtDESCRIPTION.insertText('some text here');
});