javascript - ace editor - 禁用命令后只需重新启用它

标签 javascript ace-editor

我想在禁用命令后重新启用它...... 这就是我简单地禁用它的方法:

editor.commands.removeCommand("backspace");


但现在我需要再次启用它,但我不知道该怎么做...

我发现类似 this 的内容但这是非常困难的..

有没有办法简单地重新启用它?

请帮忙..

最佳答案

您可以保留对该命令的引用,以便稍后将其添加回来

var command = editor.commands.byName.backspace
editor.commands.removeCommand(command)
editor.commands.addCommand(command)

或仅删除 key

function setCommandEnabled(editor, name, enabled) {
    var command = editor.commands.byName[name]
    if (!command.bindKeyOriginal) 
        command.bindKeyOriginal = command.bindKey
    command.bindKey = enabled ? command.bindKeyOriginal : null;
    editor.commands.addCommand(command);
    // special case for backspace and delete which will be called from
    // textarea if not handled by main commandb binding
    if (!enabled) {
        var key = command.bindKeyOriginal;
        if (key && typeof key == "object")
            key = key[editor.commands.platform];
        if (/backspace|delete/i.test(key))
            editor.commands.bindKey(key, "null")
    }
}

然后调用

setCommandEnabled(editor, "backspace", false)
setCommandEnabled(editor, "backspace", true)

关于javascript - ace editor - 禁用命令后只需重新启用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24963246/

相关文章:

javascript - 如何在Typescript中实现非短路条件?

ace-editor - Ace编辑器中/mode/html有什么要求?

focus - Vaadin AceEditor 焦点问题

javascript - 将 JavaScript Map 值作为数组获取?

javascript - 如何强制 Date 构造函数接受 IE 上的格式

javascript - 为什么我没有得到正确的时间?

javascript - 在页面刷新时使用 jQuery 重新加载 JSON 文件

javascript - 如何在 ace 中向 mode-xml.js 添加新的突出显示规则?

xml - 使用 Ace 通过 XSD 编辑 XML

css - ace 编辑器中标记的自定义样式