请帮帮我 - 我需要对CKeditor进行全面的重新初始化。我不想重新初始化CKeditor的实例,但我想完全重新加载它。有没有办法实现它? 我试着做下一个:
delete window.CKEDITOR;
然后:
//clear for old sources
$('script[src*="/includes/contentEditor/ckeditor/"]').each(function() {
$(this).remove();
});
$('link[href*="/includes/contentEditor/ckeditor/"]').each(function() {
$(this).remove();
});
//load CKeditor again
contentEditor.loadjscssfile('/includes/contentEditor/ckeditor/ckeditor.js', 'js');
contentEditor.loadjscssfile('/includes/contentEditor/ckeditor/adapters/jquery.js', 'js');
我的方法加载编辑器,但重新加载后某些插件不起作用。谢谢你的帮助!
答案 0 :(得分:5)
我有插件,我也不需要完全重新初始化CKEditor,只是实例,你做得对吗?
删除我的实例(我的textarea由ID txt_postMsg引用):
$('#btn_cancelPost').click(function(){
CKEDITOR.remove(CKEDITOR.instances.txt_postMsg);
$('#txt_postMsg').remove();
$('#cke_txt_postMsg').remove();
});
然后我重新创建textarea,并在50ms超时后再次使用textarea调用构造函数,插件重新加载正常。我们有一些非常复杂的插件用于flash /图像编辑,所以你的插件可能有问题吗?
答案 1 :(得分:2)
我的版本:
$$("textarea._cke").each(function(Z) {
if (typeof(CKEDITOR.instances[Z.id]) == 'undefined') {
CKEDITOR.replace(Z.id, { customConfig : "yourconfig.js"});
} else {
CKEDITOR.instances[Z.id].destroy(true);
CKEDITOR.replace(Z.id, { customConfig : "yourconfig.js"});
}
});
答案 2 :(得分:1)
尝试类似
的内容for(var instanceName in CKEDITOR.instances)
CKEDITOR.remove(CKEDITOR.instances[instanceName]);
CKEDITOR.replaceAll();
答案 3 :(得分:0)
<强> AlfonsoML 强> 我使用CKeditor动态编辑网站的不同部分。当我点击网站的某个区域时,它会显示带有CKeditor的弹出窗口,该区域内有此区域的内容。当我保存它时,我会破坏这个编辑器的实例,但如果在编辑时我使用链接插件,则CKeditor无法在没有页面刷新的情况下显示编辑器。 Chrome说 - Uncaught TypeError:无法调用未定义的方法'split',Mozilla - x.config.skin未定义(我尝试设置config.skin并显示另一个错误 - z未定义)。
我希望完整的重新初始化可以提供帮助。
P.S。对不起,我可以找到如何回答您的评论...
答案 4 :(得分:0)
我一直在寻找重新初始化编辑器的方法,我最终解决的唯一解决方案是删除实例并创建新ID。
这是我的代码。
var editor = 'myeditor'
var instance = CKEDITOR.instances[editor];
if(typeof instance != 'undefined')
{
instance.destroy();
$(".cke_editor_" + editor).remove();
//make a new id
editor = (Math.random().toString(36).substr(2, 10););
}
CKEDITOR.replace(editor,
{
}
它并不完美,但它确实有效。
希望这有帮助。
答案 5 :(得分:0)
这是我的解决方案:
var editor = CKEDITOR.instances[your_ckeditor_id];
editor.mode = 'source';
editor.setMode('wysiwyg');
OR
var editor = CKEDITOR.instances[your_ckeditor_id];
editor.setData(editor.getData());