ace编辑器可防止触发keydown事件。我认为是preventDefault

如何在执行editor事件之前删除此预防措施或绑定到keydown事件?

最佳答案

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)

或更紧凑的形式
var h = new HashHandler()
h.bindKeys({"Up": function(ed){...}})

关于ace-editor - ace编辑器未触发keydown事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14042926/

10-13 08:14