在ace编辑器上没有激活keydown事件

ami*_*dar 2 ace-editor

ace编辑器阻止keydown事件被触发.我想是的preventDefault.

如何在执行编辑器事件之前删除此预防或绑定到keydown事件?

a u*_*ser 5

ace只停止它已处理的事件,你可以使用捕获事件监听器(editor.container.addEventListener("keydown",handler,true))或使用ace的命令处理程序

更新:阻止ace命令只有时候捕获事件处理程序才会起作用,但有时ace hashHandler比关键码大转换更好

HashHandler = require("ace/keyboard/hash_handler").HashHandler
var turn = 0
var h = new HashHandler([{
    bindKey: "Up",
    descr: "Block cursor movement smetimes",
    exec: function(ed){
        turn++
        if (turn % 2)
            return false // allow other ace commands to handle event
    }
}])
editor.keyBinding.addKeyboardHandler(h)
// editor.keyBinding.removeKeyboardHandler(h)
Run Code Online (Sandbox Code Playgroud)

或更紧凑的形式

var h = new HashHandler()
h.bindKeys({"Up": function(ed){...}})
Run Code Online (Sandbox Code Playgroud)