Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不重建的情况下在CKEditor中添加或删除插件?_Ckeditor_Ckeditor4.x - Fatal编程技术网

如何在不重建的情况下在CKEditor中添加或删除插件?

如何在不重建的情况下在CKEditor中添加或删除插件?,ckeditor,ckeditor4.x,Ckeditor,Ckeditor4.x,我刚刚开始使用CKEditor 4(很久以前就使用过版本1)。我喜欢我可以在线构建并下载它,但是当我这样做的时候,我会使用工具栏配置工具来设置我的工具栏 如果我想在将来添加或删除某个特定插件,会发生什么?我是否必须使用构建工具构建一个全新的CKEditor,然后下载它以替换现有的CKEditor,然后重新配置我的工具栏?我真的不想每次都重新配置工具栏 有几个插件我以后可能会用到,所以我只是想弄清楚我现在是否需要包括它们,或者我可以在以后轻松地添加它们吗?删除插件 移除很容易。CKEditor提供

我刚刚开始使用CKEditor 4(很久以前就使用过版本1)。我喜欢我可以在线构建并下载它,但是当我这样做的时候,我会使用工具栏配置工具来设置我的工具栏

如果我想在将来添加或删除某个特定插件,会发生什么?我是否必须使用构建工具构建一个全新的CKEditor,然后下载它以替换现有的CKEditor,然后重新配置我的工具栏?我真的不想每次都重新配置工具栏

有几个插件我以后可能会用到,所以我只是想弄清楚我现在是否需要包括它们,或者我可以在以后轻松地添加它们吗?

删除插件 移除很容易。CKEditor提供配置选项,您可以在其中定义要删除的插件。 例如

您需要记住,删除插件可能会破坏依赖性。例如,您希望删除
剪贴板
插件,但希望加载
粘贴自Word
插件。从Word粘贴需要剪贴板才能正常工作,删除剪贴板将中断加载此插件。控制台中将抛出足够的错误

插件选项 另一种解决方案是定义您希望在编辑器中加载的插件。您需要在配置中使用
插件
选项。这将只加载已定义的插件及其依赖项。例如,在上述情况下,当您定义要加载的
pastefromword
插件时,这也将加载
剪贴板
插件

添加插件 有用于加载额外插件的配置选项。您可以在其中定义要加载的插件的名称:。这里的情况有点复杂,因为编辑器需要提供插件。当你想加载插件时,你需要做两件事:

  • 加载插件(更多详细说明如下)
  • 使用
    extraPlugins
    configuration选项为编辑器实例添加插件
  • 可能存在这样的情况,一个页面上只有几个编辑器,每个编辑器都有不同的可用插件。在这种情况下,将加载所有插件,但不会在特定编辑器实例中使用所有插件

    在代码中定义插件内联 如果您编写了自己的插件,您可能希望直接在JS中定义它。您只需要注意在初始化编辑器之前进行定义。

    从本地资源加载插件 如果您希望加载单独下载/创建的插件,您可以与CKEditor一起创建适当的文件夹结构。这样添加的插件将可用,并且可以通过
    extraPlugins
    添加

    ckeditor root/
        plugins/
            <plugin name>/
                icons/
                    <plugin name>.png
                dialogs/
                    <dialog file>.js
                plugin.js
    

    谢谢-这真的很有帮助!回答得很好。我在代码中定义了一个自定义插件,它第一次工作,第二次崩溃。希望有一种方法可以检测何时加载或卸载自定义插件。
    CKEDITOR.plugins.add( 'testplugin', {
      init: function( editor ) {
        console.log( 'plugin loaded' );
        // adding more logic
      }
    } )
    
    CKEDITOR.replace( 'editor', {
      extraPlugins: 'testplugin'
    } );
    
    ckeditor root/
        plugins/
            <plugin name>/
                icons/
                    <plugin name>.png
                dialogs/
                    <dialog file>.js
                plugin.js
    
    CKEDITOR.plugins.addExternal( 'timestamp', 'https://sdk.ckeditor.com/samples/assets/plugins/timestamp/', 'plugin.js' );
    
    CKEDITOR.replace( 'editor1', {
        extraPlugins: 'timestamp'
    } );