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/