Plugins CKEditor:如何删除已添加的插件?

Plugins CKEditor:如何删除已添加的插件?,plugins,ckeditor,Plugins,Ckeditor,我刚刚开始使用CKEditor,但很难理解插件系统 我可以添加一个简单的按钮,当你点击它时,它会显示“测试”: var myplugin_function = function () { alert('Test'); } var plugin_name='myplugin'; CKEDITOR.plugins.add(plugin_name, { init:function(c) { c.addCommand(plugin_name,

我刚刚开始使用CKEditor,但很难理解插件系统

我可以添加一个简单的按钮,当你点击它时,它会显示“测试”:

  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,
…part

你没有展示你是如何添加插件的,所以很难判断你的确切问题是什么;但是从你提供的代码中,我可以建议你使用比“a”、“b”和“c”更好的变量名。用这种方式理解代码相当困难


另外,只需从实例数组中删除实例,但它并不能真正清除已使用的资源,您应该使用CKEDITOR.instances['mytextarea'].相反

好的,谢谢,这就解释了为什么在使用了几次页面后FF会慢很多,我想…销毁实例不会删除代码中添加的插件您的更新会停止错误,但我的按钮第二次不起作用