【发布时间】:2015-01-20 11:14:38
【问题描述】:
在这个了不起的编辑器 (Ace: Code Editor) 上,有一种方法可以让我获得 on change 事件,是否有 on keydown 事件?或者我可以模拟它的 hack?
【问题讨论】:
标签: javascript ace-editor
在这个了不起的编辑器 (Ace: Code Editor) 上,有一种方法可以让我获得 on change 事件,是否有 on keydown 事件?或者我可以模拟它的 hack?
【问题讨论】:
标签: javascript ace-editor
没有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 中找不到它,但是在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 在编辑器中的每个 command 上触发。 命令 包括诸如键入文本、在 ctrl+空格 上显示完成弹出窗口等操作...
它不是 keydown 事件的直接模拟,但它是我来这里时搜索的东西,所以希望你会发现它很有用。
【讨论】: