我使用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
属性值。我没有在与此相关的文档中找到任何内容。任何帮助将不胜感激。
答案 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);