CKEditor - 如何获取模板属性

时间:2018-05-14 13:32:23

标签: javascript html ckeditor wysiwyg

我使用CKEditor的模板插件在编辑器中加载模板。我在模板中定义了这个。

templates: [
    {
    title: "Quickclick 1",
    image: "template1.png",
    description: "Quickclick 1 template",
    html_et: "<span>test1</span>",
    html:'  <span>test</span>'
}]

当用户选择模板时,加载html就好了。但是,如果有办法从CKEditor实例中获取当前所选模板的属性,那将会很棒。

在这种情况下,我需要获取html_et属性值。我没有在与此相关的文档中找到任何内容。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

@Lingasamy Sakthivel,这不是你在CKEditor中定义模板的方式。

如果您想使用模板,则需要在模板插件中创建一个默认文件:https://github.com/ckeditor/ckeditor-dev/blob/major/plugins/templates/templates/default.js

注意:在定义测试模板文件时,为了简单起见,我将文件命名为my_template.js并为模板定义CKEDITOR.addTemplates( 'my_templates', {...指定了相同的名称。

现在,准备好文件后,可以将其分配给编辑器。为此,您需要指定文件的路径(完整或相对于应用程序的上下文)和应加载的定义。

在下面的示例中,我加载了默认的CKEditor文件以及我的自定义文件:

var editor = CKEDITOR.replace( 'editor1', {
        language: 'en',
        templates_files : [
            '/myApp/ckeditor/plugins/templates/templates/default.js',
            '/myApp/ckeditor/my_templates.js'
        ],
        templates : 'default,my_templates'
});

现在困难的部分。你写过你想知道选择了哪个模板,但说实话,除了更改插件代码之外我不知道你可以做什么。

加载模板定义时,其中的模板将逐个加载 并分配了一个onclick处理程序。这是恕我直言,我们您可以添加自定义代码以获取html_et属性 - https://github.com/ckeditor/ckeditor-dev/blob/major/plugins/templates/dialogs/templates.js#L53-L55

要做到这一点,您需要获取编辑器的源版本,在模板插件中进行更改,然后构建编辑器(推荐方法):

或者,您可以在没有templates插件的情况下下载CKEditor(可以使用online builder完成,您可以从构建中删除templates插件。接下来,您需要手动下载that plugin,进行更改并通过删除ckeditor/plugins文件夹中的插件文件夹并使用extraPlugins设置将该插件添加到编辑器中。

答案 1 :(得分:0)

你能这样试试吗?

var editor = CKEDITOR.replace('editor1', {
    templates: [
        {
            title: "Quickclick 1",
            image: "template1.png",
            description: "Quickclick 1 template",
            html_et: "<span>test1</span>",
            html:'  <span>test</span>'
        }
    ]
});

alert(editor.config.templates[0].html_et);