我使用JQuery for CKeditor。 我有几个textarea。 在内容生成时,textarea的名称可能不同。
通过这个,我使用类而不是ID:
$('.ckedit').ckeditor();
AJAX内容重新加载后,我发现错误: *实例某事已存在*
我知道,我可以使用Ckeditor的destroy方法:
if (CKEDITOR.instances['textarea_name']) {
CKEDITOR.instances['textarea_name'].destroy();
}
但是我不能这样做,因为textarea的名字/ id目前可能是几个。
我如何解决这个问题?谢谢,抱歉我的英文:)
答案 0 :(得分:0)
当我有一个带有CkEditor的UpdatePanel时,我尝试使用此代码并为我工作:
ASPX:
<asp:UpdatePanel ID="up" runat="server">
<ContentTemplate>
<textarea></textarea>
<asp:Label ID="lbl" runat="server" />
<asp:Button ID="btnGo" runat="server" OnClick="btnGo_Click" />
</ContentTemplate>
</asp:UpdatePanel>
使用Javascript:
$(document).ready(function () {
ReplaceWithCkEditor();
});
function pageLoad() {
ReplaceWithCkEditor();
}
function ReplaceWithCkEditor() {
$('textarea').ckeditor();
}
Microsoft Ajax框架在UpdatePanel完成后运行pageLoad
函数。然后我用CkEditor替换textarea。
答案 1 :(得分:0)
感谢所有人。 我解决了这个问题。
之前
$('.ckedit').ckeditor();
需要插入:
jQuery.each(CKEDITOR.instances, function(){
eval("CKEDITOR.instances."+this.name+".destroy(true)");
});
答案 2 :(得分:0)
您在textarea中添加了类wysiwyg并调用此函数。当您转换新textarea时,请使用此函数将新闻元素textarea转换为此类。
CKEDITOR.basePath += 'ckeditor/';
CKEDITOR.config.contentsCss = '/ckeditor/contents.css' ;
function addWysiwyg()
{
var eldata = $(document).find('.wysiwyg');
console.log(eldata);
var config = {};
$(eldata).each(function(){
CKEDITOR.replace(this, config);
$(this).removeClass('wysiwyg');
});
}