CKEditor.. NET追加通过jQuery

本文关键字:jQuery 追加 NET CKEditor | 更新日期: 2023-09-27 18:15:29

我读了这篇文章,并试图通过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: Cannot call method 'insertText' of undefined

我怎么能简单地添加文本"测试"到我的CKEditor?

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

CKEditor.. NET追加通过jQuery

你给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>";
}

这是CKEditor的一个bug的结果,在这里记录http://dev.ckeditor.com/ticket/6497。作为一种解决方法,我只需在按钮单击后添加文本,如下所示:

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