CKEditor v4.8
有关SharedSpaces的问题。我在基于SQL
行的循环中动态生成编辑器(内容替换DIV标签 - 内联编辑)。
我只想在循环外加载/调用editor.ui.addButton
和addRichCombo
。这可能吗?
for (var i = 0; i < retrievedRecords.length; i++) {
var documentBlock = retrievedRecords[i];
// This next line creates each inline editor with all custom buttons and combo every time through the loop
// Can I just load the custom buttons and combo once and all new editors use that 1 toolbar?
createInlineEditor('myID_' + i, content, id);
var refToEditor = document.getElementById('myID_' + i);
divContainer.appendChild(refToEditor);
}
答案 0 :(得分:0)
sharedspace
插件的效果与您想象的差别不大。它不在编辑器之间共享相同的工具栏,但它是顶部和底部工具栏之间的空间。我知道这听起来有点复杂,所以我添加一些图片来说明它:
有一些重要原因可以解决这个原因,但最明显的是,您可以为编辑器配置sharedspace
插件的不同插件,并更改工具栏的外观,例如:通过其他按钮。如果您可以共享同一工具栏,则可能无法使用不同编辑器的按钮。
IMO您可以做的最好的事情是简化代码,即在编辑器之间共享配置对象。
var config = {
on: {
pluginsLoaded: function( evt ) {
evt.editor.ui.addButton( 'MyBold', {
label: 'My Bold',
command: 'bold',
toolbar: 'basicstyles,1'
} );
}
}
};
for (var i = 0; i < retrievedRecords.length; i++) {
var documentBlock = retrievedRecords[i];
var editor = createInlineEditor('myID_' + i, content, id, config);
var refToEditor = document.getElementById('myID_' + i);
divContainer.appendChild(refToEditor);
}