CKEditor enabling/disabling 按钮通过 js

CKEditor enabling/disabling buttons via js

我试图从 CKEditor 的工具栏中禁用一些按钮,这是我的代码

CKEDITOR.instances.MY_INSTANCE.commands.bold.disable();

它在页面加载时禁用粗体按钮,但是当我在 CKEditor 的编辑器区域中单击时,粗体按钮被激活。另外,我试过 CKEDITOR.instances.MY_INSTANCE.commands.bold.setState(CKEDITOR.TRISTATE_DISABLED);

但结果是一样的。有人遇到同样的问题吗?

ps。以及如何正确禁用文本转换按钮(f.e。-大写),因为它需要几个参数

这很棘手,因为目前没有一个入口点可以设置所有按钮状态。现在每个插件都可以设置按钮的状态,这将改变你的状态。但是你可以监听 state 事件,每次状态改变时都会被触发:

var boldCommand = editor.getCommand( 'bold' );

boldCommand.on( 'state', function( evt ) {
    if( something ) {
        boldCommand.setState( CKEDITOR.TRISTATE_DISABLED );
    }
} );

问题是当你想重新启用按钮状态时,因为客人可能很难知道你应该设置什么状态,而且这个问题没有简单的解决方案。您可以监听每个事件 bold 命令可以更改其状态(selectionChangemodereadOnly...),保存按钮的状态并在使用时使用该状态你重新启用它。有a ticket to make it simpler),但这是一个相当大的任务。