Javascript CKEditor插件:根据选择设置默认值
我创建了一个自定义的CKEditor插件,它接受一个文本值并将其插入到一些HTML中。一切正常,但我不知道如何用默认值填充字段。如果是新元素,我希望默认值为空。但我希望默认值是编辑所选项目时的值。否则,如果不进入源代码模式,或者完全删除所有内容并重新开始,我将无法编辑HTML中的值Javascript CKEditor插件:根据选择设置默认值,javascript,jquery,ckeditor,Javascript,Jquery,Ckeditor,我创建了一个自定义的CKEditor插件,它接受一个文本值并将其插入到一些HTML中。一切正常,但我不知道如何用默认值填充字段。如果是新元素,我希望默认值为空。但我希望默认值是编辑所选项目时的值。否则,如果不进入源代码模式,或者完全删除所有内容并重新开始,我将无法编辑HTML中的值 CKEDITOR.dialog.add( 'videoLinkDialog', function( editor ) { return { title : 'Video Properties',
CKEDITOR.dialog.add( 'videoLinkDialog', function( editor )
{
return {
title : 'Video Properties',
minWidth : 400,
minHeight : 200,
contents :
[
{
id : 'general',
label : 'Settings',
elements :
[
{
type : 'html',
html : 'This dialog window lets you embed Vimeo videos on your website.'
},
{
type : 'text',
id : 'url',
label : 'Video ID',
validate : CKEDITOR.dialog.validate.notEmpty( 'This field cannot be empty.' ),
required : true,
commit : function( data )
{
data.text = this.getValue();
}
},
]
}
],
onOk : function()
{
val = this.getContentElement('general', 'url').getInputElement().getValue();
var text = '<a class="colorbox-inline" href="http://player.vimeo.com/video/' + val + '?width=915&height=515&iframe=true&autoplay=1"><img class="vid-thumbnail" src="http://placehold.it/350x150" data-vimeo-id="' + val + '" /></a>';
this.getParentEditor().insertHtml(text)
},
};
} );
CKEDITOR.dialog.add('videoLinkDialog',函数(编辑器)
{
返回{
标题:“视频属性”,
最小宽度:400,
身高:200,
内容:
[
{
id:'将军',
标签:“设置”,
元素:
[
{
键入:“html”,
html:“此对话框窗口允许您在网站上嵌入Vimeo视频。”
},
{
键入:“文本”,
id:'url',
标签:“视频ID”,
验证:CKEDITOR.dialog.validate.notEmpty('此字段不能为空'),
要求:正确,
提交:函数(数据)
{
data.text=this.getValue();
}
},
]
}
],
onOk:function()
{
val=this.getContentElement('general','url').getInputElement().getValue();
var text='';
此.getParentEditor().insertHtml(文本)
},
};
} );
有几种方法
最简单的方法是向每个对话框元素添加setup
,如下所示:
或者,您也可以使用此事件处理程序,它将在呈现对话框之前触发:
onShow: function () {
// your code here
// eg. this.setValue(*ELEMENT_ID*, *ELEMENT_VALUE*);
}
在这里,您可以查看调用事件的元素,并获取或设置填充对话框所需的任何值
您还应该在plugin.js
文件中添加一个如下所示的单击侦听器,以显示所选元素的对话框,如下所示:
editor.on('doubleclick', function (e) {
var el = e.data.element;
if (el == *YOUR_CUSTOM_ELEMENT*)
e.data.dialog = *DIALOG_NAME*;
});
editor.on('doubleclick', function (e) {
var el = e.data.element;
if (el == *YOUR_CUSTOM_ELEMENT*)
e.data.dialog = *DIALOG_NAME*;
});