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