编辑器在创建文件上传按钮时出错

ckeditor error while creating file upload button

本文关键字:按钮 出错 创建 文件 编辑器      更新时间:2023-09-26

我使用下面的代码创建一个ckeditor插件来上传图像。当我试图创建一个ckeditor对话框,我得到下面的错误。下面这段代码是我从下面的链接中获取的。http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.definition.button.html

chrome:

Uncaught TypeError: Cannot read property '_' of undefined

在firefox中:

b.getContentElement(…)是undefined

任何帮助都是非常感谢的。

{
    type : 'file',
    id : 'upload',
    label : 'Select file from your computer',
    size : 38
},
{
    type : 'fileButton',
    id : 'fileId',
    label : 'Upload file',
    'for' : [ 'tab1', 'upload' ],
    filebrowser : {
        onSelect : function( fileUrl, data ) {
            alert( 'Successfully uploaded: ' + fileUrl );
        }
    }
},

我认为你在那里,不是"代码"作为它。这只是你在初始化对话框中的按钮时必须做的对象定义,就像你粘贴的文档所说的:

这个类实际上不是API的一部分。它只是说明了开发人员可以用来定义和创建按钮的属性。

一旦对话框被打开,创建的元素就变成了button对象,可以使用CKEDITOR.dialog # getContentElement。有关对话框的完整示例定义,请检查CKEDITOR.dialog.add.

然后,如果我们检查:http://docs.ckeditor.com/#!/api/CKEDITOR.dialog.definition

我们将找到以下代码:

CKEDITOR.dialog.add( 'testOnly', function( editor ) {
    return {
        title:          'Test Dialog',
        resizable:      CKEDITOR.DIALOG_RESIZE_BOTH,
        minWidth:       500,
        minHeight:      400,
        contents: [
            {
                id:         'tab1',
                label:      'First Tab',
                title:      'First Tab Title',
                accessKey:  'Q',
                elements: [
                    {
                        type:           'text',
                        label:          'Test Text 1',
                        id:             'testText1',
                        'default':      'hello world!'
                    }
                ]
            }
        ]
    };
} );

然后,似乎您需要使用您准备的对象调用方法CKEDITOR.dialog.add。(无论如何,我没有检查对象中的所有数据和格式)这个例子应该可以工作。

无论如何,你应该检查同一文档的这一部分,并确定哪一个是你需要的对话框/插件。

希望对你有帮助。