gpt4 book ai didi

javascript - 动态更改ckeditor对话框

转载 作者:行者123 更新时间:2023-11-28 04:37:27 27 4
gpt4 key购买 nike

我正在尝试根据另一个字段修改对话框字段的内容。我已经尝试过 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com