Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CKEditor插件:根据选择设置默认值_Javascript_Jquery_Ckeditor - Fatal编程技术网

Javascript CKEditor插件:根据选择设置默认值

Javascript CKEditor插件:根据选择设置默认值,javascript,jquery,ckeditor,Javascript,Jquery,Ckeditor,我创建了一个自定义的CKEditor插件,它接受一个文本值并将其插入到一些HTML中。一切正常,但我不知道如何用默认值填充字段。如果是新元素,我希望默认值为空。但我希望默认值是编辑所选项目时的值。否则,如果不进入源代码模式,或者完全删除所有内容并重新开始,我将无法编辑HTML中的值 CKEDITOR.dialog.add( 'videoLinkDialog', function( editor ) { return { title : 'Video Properties',

我创建了一个自定义的CKEditor插件,它接受一个文本值并将其插入到一些HTML中。一切正常,但我不知道如何用默认值填充字段。如果是新元素,我希望默认值为空。但我希望默认值是编辑所选项目时的值。否则,如果不进入源代码模式,或者完全删除所有内容并重新开始,我将无法编辑HTML中的值

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&amp;height=515&amp;iframe=true&amp;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*;
  });