在CKEditor中禁用命令

时间:2014-12-31 00:52:00

标签: javascript html html5 ckeditor wysiwyg

我无法禁用某些CKEditor按钮。基本上,我想循环遍历所有加载的命令并在运行时禁用它们,以便它们表示为灰色按钮。这是我执行此操作的代码:

for (var key in CKEDITOR.instances.editor1.commands) {
        if (CKEDITOR.instances.editor1.commands.hasOwnProperty(key)) {
            console.log("disabling command " + key);
            CKEDITOR.instances.editor1.commands[key].disable();
        }
    }

我的CKEditor设置使用图像,背景颜色,粗体,斜体,下划线,插入/删除项目符号列表,复制和粘贴插件。但是,通过此方法实际禁用的唯一按钮是图像按钮;其他人保持启用状态,即使我没有看到任何错误,我的console.log也会为每个人开火。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

你想做什么很棘手。即使被禁用,某些命令(context sensitive ones)也会立即在selectionChange event上重新启用,因为它们会观察用户操作并检查它们是否适用于考虑当前选择(即cut命令等待对于某些非折叠选择的创建)。

如果要完全禁用编辑,则应使用editor.setReadOnly()。但是,如果要禁用命令并让用户键入,则需要进行一些黑客操作,因为这与WYSIWYG编辑器的用法完全相反。