如何将“strinsert”自定义下拉插件添加到 ckeditor4-react?

如何解决如何将“strinsert”自定义下拉插件添加到 ckeditor4-react?

我正在使用 ckeditor4-react 插件在 React 应用程序中使用文本编辑器。现在我想在我的文本编辑器中添加一个字符串下拉菜单,为此我遵循了“添加自定义插件”文档并添加了“strinsert”自定义插件

在“node-modules/ckeditor4-react/”文件夹中,我创建了一个名为“plugins”的文件夹,并在其中放置了“strinsert”文件夹。

现在我的自定义插件路径是“node-modules/ckeditor4-react/plugins/strinsert/plugin.js” “plugin.js”代码

CKEDITOR.plugins.add('strinsert',{
    requires : ['richcombo'],init : function( editor )
    {
        //  array of strings to choose from that'll be inserted into the editor
        var strings = [];
        strings.push(['@@FAQ::displayList()@@','FAQs','FAQs']);
        strings.push(['@@Glossary::displayList()@@','Glossary','Glossary']);
        strings.push(['@@CareerCourse::displayList()@@','Career Courses','Career Courses']);
        strings.push(['@@CareerProfile::displayList()@@','Career Profiles','Career Profiles']);

        // add the menu to the editor
        editor.ui.addRichCombo('strinsert',{
            label:      'Insert Content',title:      'Insert Content',voiceLabel: 'Insert Content',className:  'cke_format',multiSelect:false,panel:
            {
                css: [ editor.config.contentsCss,CKEDITOR.skin.getPath('editor') ],voiceLabel: editor.lang.panelVoiceLabel
            },init: function()
            {
                this.startGroup( "Insert Content" );
                for (var i in strings)
                {
                    this.add(strings[i][0],strings[i][1],strings[i][2]);
                }
            },onClick: function( value )
            {
                editor.focus();
                editor.fire( 'saveSnapshot' );
                editor.insertHtml(value);
                editor.fire( 'saveSnapshot' );
            }
        });
    }
});

添加插件后,我通过使用“extraPlugins”配置道具在文本编辑器中使用了此插件。这是我的 TextEditor 插件文件代码(位于 的“src”文件夹内)

class TextEditor extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            editorData: this.props.data
        }
    }

    /** lifecycle method */
    componentDidMount() {
        this.isMount = true;
        this.setState({editorData: this.props.data})
    }
    componentwillUnmount() {
        this.isMount = false;
    }

    /** function to detect the editor changes */
    onEditorChange(event) {
        let data = event.editor.getData()
        this.props.onChange(data)
    }

    // main function
    render() {
        const { editorData } = this.state;
        return (
            <CKEditor
                data={editorData}
                onChange={(e) => this.onEditorChange(e)}
                config={{
                    toolbar: [
                        { name: 'basicstyles',items: ['Bold','Italic','Underline','Strike'] },{ name: 'editing',items: ['SelectAll'] },{ name: 'clipboard',items: ['Undo','Redo'] },{ name: 'links',items: ['Link','Unlink','Anchor'] },{ name: 'insert',items: [ 'Image','Table','HorizontalRule','Smiley','SpecialChar' ] },{ name: 'document',items: [ 'Templates','Preview','-','Source'] },{ name: 'paragraph',items: ['NumberedList','BulletedList','Outdent','Indent','Blockquote','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','BidiLtr','BidiRtl','Language'] },{ name: 'styles',items: [ 'Styles','Format','Font','FontSize' ] },{ name: 'colors',items: [ 'TextColor','BGColor' ] },{ name: 'tools',items: [ 'Maximize','ShowBlocks' ] },],removePlugins: ['language'],extraPlugins: "strinsert",}}
            />
        );
    }
}

export { TextEditor };

在我打开文本编辑器时添加内容后,它会在控制台中显示一个错误:: 错误::

ckeditor.js:98 GET https://cdn.ckeditor.com/4.15.1/standard-all/plugins/strinsert/plugin.js?t=KA9B 

ckeditor.js:258 Uncaught Error: [CKEDITOR.resourceManager.load] Resource name "strinsert" was not found at "https://cdn.ckeditor.com/4.15.1/standard-all/plugins/strinsert/plugin.js?t=KA9B".
    at window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.resourceManager.<anonymous> (ckeditor.js:258)
    at n (ckeditor.js:253)
    at Array.v (ckeditor.js:254)
    at y (ckeditor.js:254)
    at HTMLScriptElement.CKEDITOR.env.ie.g.$.onerror (ckeditor.js:255)

请建议我如何在 ckeditor4-react 文本编辑器中添加“strinsert”自定义插件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?