我在一个页面上有4个ckeditor实例,我想在最后一个(Justifybloc)上设置一种样式。
现在我使用此代码:
CKEDITOR.on('instanceReady', function(evt) {
if (evt.editor.name != undefined) {
if (evt.editor.name.indexOf('edit-field-body-1') > -1) {
evt.editor.execCommand( 'justifyblock' );
}
}
});
execCommand将我的textarea集中在我不想要的。
我不知道这样做的其他方法。
谢谢。
您提供的代码如您所说的,以编辑器为重点。此外,它将仅证明/对齐第一个块元素(例如段落),因为焦点设置在编辑器的开头上。不用集中编辑器就无法使用此命令。
但是,要实现仅第一个块元素的合理性/对齐,您可以使用一个小的hackish解决方案并手动设置元素样式(在某种程度上,justify
插件正确识别了它):
CKEDITOR.on('instanceReady', function(evt) {
if (evt.editor.name != undefined) {
if (evt.editor.name.indexOf('editor1') > -1) {
evt.editor.editable().getChild( 0 ).setStyle( 'text-align', 'justify' );
}
}
} );
请参阅工作codepen。
这样的解决方案具有一些缺点(例如,它假设编辑器中的第一个元素是块元素 - 在大多数情况下是正确的),但在大多数情况下应该足够。
顺便说一句,如果选择编辑器内容的事实不会打扰您,并且您想首先选择其合理/对齐整个内容(需要selectall
插件),例如:
CKEDITOR.on('instanceReady', function(evt) {
if ( evt.editor.name != undefined ) {
if ( evt.editor.name.indexOf( 'editor1' ) > -1 ) {
evt.editor.execCommand( 'selectAll' );
evt.editor.execCommand( 'justifyblock' );
}
}
} );
当然,您可以始终在其他地方移动选择/焦点。
我解决了我的问题
CKEDITOR.on('instanceReady', function(evt) {
if (evt.editor.name != undefined) {
if (evt.editor.name.indexOf('edit-field-body-1') > -1) {
evt.editor.on('focus', function() {
this.execCommand( 'justifyblock' );
});
}
}
}
代码笔典型