如何在 CodeMirror 中触发键盘事件
How can I trigger keyboard events in CodeMirror?
我正在使用不同的文本字段作为CodeMirror的代理。我想使用通过键盘事件(如keydown
、keypress
和keyup
)激活的closebrackets.js
等功能。我尝试了几种不同的方法来触发这些事件,但没有一种方法导致 CodeMirror 收到任何内容:
kc = 219
e = $.Event 'keydown', { which: kc }
$( myCodeMirror.getInputField() ).trigger e
不行。不会触发任何事件。
cmIF = $( myCodeMirror.getInputField() )
textArea = $('<textarea></textArea>')
$('body').append textArea
textArea.keydown (e) ->
cmIF.focus()
return
kc = 219
e = $.Event 'keydown', { which: kc }
textArea.trigger e
尝试从其他文本区域转发事件。不行。CM 不 事件不会被触发。
$( myCodeMirror.getWrapperElement() ).children().each (index) ->
$(this).trigger e
return
尝试在 CM 包装器的每个子级上触发事件。不行。未触发 CM 事件。
我在这里做错了什么?如何在 CodeMirror 实例上触发键盘事件?
我不确定我是否 100% 理解您,但目前我在为 codemirror 实例定义配置选项时定义了键盘事件。
var cmInstance = CodeMirror(target, {
value: myTextArea.value,
//other options here perhaps
//defining some keyboard shortcuts
extraKeys: {
"Ctrl-J": "toMatchingTag",
"Ctrl-S": function(cm) {
saveCode(cm); //function called when 'ctrl+s' is used when instance is in focus
},
"F11": function(cm) {
toggleFullscreen(cm,true); //function called for full screen mode
},
"Esc": function(cm) {
toggleFullscreen(cm,false); //function to escape full screen mode
}
}
});
请记住,这些函数仅在代码镜像实例处于焦点状态时触发。然后,您可以在函数中做任何您喜欢的事情,甚至可以添加新的侦听器以查看发生了哪种事件(?
我希望这有所帮助。
codemirror 附带了一个未记录的函数 triggerOnKeyDown,您可以使用它触发 codemirror 上的键:
const ev = {
type: 'keydown',
keyCode: 40 // the keycode for the down arrow key, use any keycode here
}
cm.triggerOnKeyDown(ev)
我也得到了同样的痛苦,最后我找到了解决方案。我不知道这是否是丑陋的黑客,但它对我有用。希望它对你有用。
myCodeMirror.options.extraKeys.F11(); //trigger F11 assigned function
myCodeMirror.options.extraKeys.["Ctrl-S"](); //trigger Ctrl-S assigned function
相关文章:
- Vue键盘事件未启动
- Bootstrap 3键盘对默认键盘事件没有反应
- 是否可以使用JavaScript创建计算机宏(键盘事件等)
- JavaScript 键盘事件和比较
- 虚拟键盘事件
- 如何在 LimeJS javascript for html5 中处理键盘事件
- 调度键盘事件不'不能在JavaScript中工作
- 在谷歌地图上收听键盘事件
- 无法在鳄梨酱iframe中获取键盘事件
- 扩展浏览器以处理Apple键盘事件
- 用防油键或防篡改键触发键盘事件
- 如何使用自定义键盘事件和keyCode更改输入/textarea值
- 如何在svg上收听键盘事件
- 如何存储鼠标&键盘事件和值
- 键盘事件代码
- 国际键盘如何处理 JavaScript 键盘事件
- 来自键盘事件的 JS 读取变量
- 如何在 CodeMirror 中触发键盘事件
- 具有离子形式的键盘事件
- JavaScript 键盘事件未触发