CKEditor 4 +增强图像,默认居中。 FYI

时间:2018-03-22 09:33:27

标签: ckeditor alignment config center

这不是一个问题,而是一个解决方案(带有一个小肮脏的技巧)。

我需要在CKEditor中使用" center"默认情况下对齐。我找不到工作的例子,所以我花了很多时间并得出以下答案。

2 个答案:

答案 0 :(得分:1)

在您的编辑CKEDITOR.on( 'dialogDefinition', function( ev ) { // Take the dialog name and its definition from the event data. var dialogName = ev.data.name; var dialogDefinition = ev.data.definition; if ( dialogName == 'image2' ) { ev.data.definition.dialog.on('show', function() { //debugger; var widget = ev.data.definition.dialog.widget; // To prevent overwriting saved alignment if (widget.data['src'].length == 0) widget.data['align'] = 'center'; }); } });

{{1}}

享受!

答案 1 :(得分:0)

我已经成功使用了上述解决方案几年了-尽管现在(CKEditor版本4.14.0)它会引发错误并且不再起作用。经过公认的旧文档的大量故障排除和帮助后,请点击此处: https://nightly.ckeditor.com/20-05-20-06-04/standard/samples/old/dialog/dialog.html ...以下似乎在这里起作用:

在编辑器config.js文件中:

CKEDITOR.on('dialogDefinition', function(ev) {
  let dialogName       = ev.data.name;
  let dialogDefinition = ev.data.definition;
  console.log(ev);
  if (dialogName == 'image2') {
    dialogDefinition.onFocus = function() {
      /**
       * 'none' is no good for us - if is none - reset to 'center'
       * if it's already 'left','center', or 'right' - leave alone.
       */
      if (this.getContentElement('info', 'align')
          .getValue() === 'none') {
        this.getContentElement('info', 'align')
            .setValue('center');
      }
    };
  }
});