Ace Editor 上的按键事件
Keydown event on Ace Editor
在这个神奇的编辑器(Ace: Code Editor)上,有一个方法可以获取on change
事件,有on keydown
事件吗?或者我可以模拟它的技巧?
没有keydown事件,可以在editor.textInput.getElement()
返回的textarea上添加keydown事件监听器,但是更好的方法是使用editor.commands.addCommand
editor.commands.addCommand({
name: "...",
exec: function() {},
bindKey: {mac: "cmd-f", win: "ctrl-f"}
})
或editor.keyBinding.addKeyboardHandler
我在 the documentation, but in this discussion 找不到它,我找到了 editor.commands.on('afterExec', ...)
API:
editor.commands.on('afterExec', eventData => {
if (eventData.command.name === 'insertstring') {
console.log('User typed a character: ' + eventData.args);
}
});
afterExec
在编辑器中的每个 命令 上触发。 命令 包括输入文本、在 ctrl+space 上出现完成弹出窗口等操作...
它不是 keydown 事件的直接模拟,但它是我来到这里时正在谷歌搜索的东西,所以希望你会发现它有用。
在这个神奇的编辑器(Ace: Code Editor)上,有一个方法可以获取on change
事件,有on keydown
事件吗?或者我可以模拟它的技巧?
没有keydown事件,可以在editor.textInput.getElement()
返回的textarea上添加keydown事件监听器,但是更好的方法是使用editor.commands.addCommand
editor.commands.addCommand({
name: "...",
exec: function() {},
bindKey: {mac: "cmd-f", win: "ctrl-f"}
})
或editor.keyBinding.addKeyboardHandler
我在 the documentation, but in this discussion 找不到它,我找到了 editor.commands.on('afterExec', ...)
API:
editor.commands.on('afterExec', eventData => {
if (eventData.command.name === 'insertstring') {
console.log('User typed a character: ' + eventData.args);
}
});
afterExec
在编辑器中的每个 命令 上触发。 命令 包括输入文本、在 ctrl+space 上出现完成弹出窗口等操作...
它不是 keydown 事件的直接模拟,但它是我来到这里时正在谷歌搜索的东西,所以希望你会发现它有用。