gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:48:59 25 4
gpt4 key购买 nike

我刚刚开始使用 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, ... 部分

最佳答案

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

另外,CKEDITOR.remove只是从实例数组中删除实例,但它并没有真正清除使用的资源,您应该使用 CKEDITOR.instances['mytextarea']。 destroy( true )反而

关于plugins - CKEditor:如何删除已添加的插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com