【问题标题】:ckeditor error while creating file upload button创建文件上传按钮时出现ckeditor错误
【发布时间】:2015-08-08 00:15:40
【问题描述】:

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

在铬:

未捕获的类型错误:无法读取未定义的属性“_”

在火狐中:

b.getContentElement(...) 未定义

任何帮助都会很重要。

{
    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 );
        }
    }
},

【问题讨论】:

  • 您尝试过什么吗?你解决了吗?
  • @AlejandroTeixeiraMuñoz 我解决了。在“for”中有两个值“tab1”和“upload”。这里的“tab1”是包含这些按钮的父选项卡的 ID,“上传”是用作上传按钮的按钮的 ID。但是我为选项卡分配了不同的 ID。我已将选项卡的 id 分配为“customtab”,但在这里我将其称为“tab1”。所以它应该像 'for' : ['customtab','upload']。

标签: javascript jquery ckeditor fckeditor


【解决方案1】:

我认为你所拥有的不是“代码”。只是您必须执行的对象定义来初始化对话框中的按钮,正如您粘贴的文档所说:

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

一旦打开对话框,创建的元素就会变成 CKEDITOR.ui.dialog.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。 (无论如何,我没有检查您对象中的所有数据和格式)这个例子应该可以工作。

无论如何,您应该检查this part of the same documentation 并确定哪个是您需要的对话框/插件。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2014-05-06
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 2017-05-14
    • 2016-09-28
    • 1970-01-01
    • 2020-10-13
    相关资源
    最近更新 更多