javascript - 动态更改ckeditor对话框

标签 javascript jquery modal-dialog ckeditor

我正在尝试根据另一个字段修改对话框字段的内容。我已经尝试过 replace方法,但我抛出这个错误:The editor instance "edit-body-und-0-value" is already attached to the provided element. 基本目标是向表中添加一个类。使用表格对话框,我想是否可以填写 advCSSClassess默认值,然后替换编辑器,我现在有一个带有附加类的对话框。

这是我的插件代码:

CKEDITOR.on('dialogDefinition', function( ev ) {
    var dialogName = ev.data.name;
    var dialogDefinition = ev.data.definition;
    if ( dialogName === 'table' ) {
        var tableProperties = dialogDefinition.getContents( 'info' );
        var advancedTab = dialogDefinition.getContents( 'advanced' );
        var classField = advancedTab.get( 'advCSSClasses' );
        classField['default'] = 'stackable';
        tableProperties.add({
            type: 'checkbox',
            id: 'stackTable',
            label: 'Make table responsive',
            'default': false,
            onClick: function( button ) {        
                classField[ 'default' ] = 'stackable';
                var thisEditor = CKEDITOR.instances;
                CKEDITOR.replace('edit-body-und-0-value', thisEditor);
            }

        });

    }
});

我已经能够在点击处理程序中像这样破解它,但这似乎不可持续。:

var classInput = $("label:contains('Stylesheet Classes')").attr('for');
$('#' + classInput).val('stackable');

我用过thisthis供引用。

最佳答案

由于这个问题收到了新的请求,因此这是我最终得到的代码。这已经足够老了,我记不清细节了,但我希望这会有所帮助。

CKEDITOR.on('dialogDefinition', function( ev ) {
var dialogName = ev.data.name;
var dialogDefinition = ev.data.definition;
if ( dialogName === 'table' ) {
  var tableProperties = dialogDefinition.getContents( 'info' );
  tableProperties.add({
    type: 'checkbox',
    id: 'stackTable',
    label: 'Make table stackable on mobile. Does not work with header row.',
    'default': false,
    onClick: function( button ) {
      var classInput = CKEDITOR.dialog.getCurrent().getContentElement('advanced', 'advCSSClasses').getElement().$;
      $('#' + classInput.id).find('input').val('sy-stacktable');
    }
  });
}
});

关于javascript - 动态更改ckeditor对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44077640/

相关文章:

javascript - 分配 JSON 数据时,不是 angularjs 中的数组错误

javascript - 如何修复下拉列表中项目的显示?

javascript - CSS/JavaScript : Make element top-most z-index/top-most modal element

javascript - 为视频而不是图像实现 Angular Masonry

javascript - 如何为多个图像打开模态图像

javascript - 如何使用 jQuery 选择模态对话框

javascript - 无法在打包的 Chrome 扩展程序中获取正确的资源文件路径

javascript - 仅使用页面滚动条滚动 div 的左侧

jquery - 如何在 mvc 验证消息中使用 Bootstrap 弹出窗口

javascript - 向下滚动时替换 Logo 图像 JS/HTML/CSS wordpress 网站