我刚刚开始使用CKEditor,但很难理解插件系统。
当你点击它时,我能够添加一个简单的“Test”按钮:
var myplugin_function = function () {
alert('Test');
}
var plugin_name='myplugin';
CKEDITOR.plugins.add(plugin_name,
{
init:function(c) {
c.addCommand(plugin_name,myplugin_function);
c.ui.addButton(plugin_name,
{
label:'This is my plugin',
command:plugin_name,
icon:this.path+'myplugin.png'
});
}
});
我知道这段代码应该只执行一次,例如在plugin.js
中,但这不是我使用它的方式。每次加载Ajax页面时都会执行CKEditor实例,包括我的插件代码。
这就是我使用它删除实例的原因,如果它存在:
if (CKEDITOR.instances['mytextarea']) {
CKEDITOR.remove(CKEDITOR.instances['mytextarea']);
}
然后我使用jquery方法从textarea创建ckeditor:
$('#mytextarea').ckeditor();
但是第二次加载ajax页面时,我收到有关已经注册的插件的错误。所以我需要一种方法来删除插件,并能够再次添加 。
这甚至可能吗?
的更新 的
这似乎有效:
我现在检查插件是否已注册:
if (!CKEDITOR.plugins.registered[plugin_name]) {
}
围绕CKEDITOR.plugins.add(b,
...部分
答案 0 :(得分:1)
您没有展示如何添加插件,因此很难说出您的确切问题是什么;但是从你提供的代码我可以建议你使用变量名比“a”,“b”和“c”更好。用这种方式理解代码要困难得多。
另外,CKEDITOR.remove只是从实例数组中删除了实例,但它并没有真正清除已使用的资源,你应该使用CKEDITOR.instances ['mytextarea']。destroy( true )而不是3} p>