简体   繁体   English

如何在Cycle.js中捕获键盘事件?

[英]How to catch keyboard events in Cycle.js?

I'm trying to get hold of when the user presses the Escape key with my app open (so not necessarily with an input field focussed). 当用户在我的应用程序打开时按下Escape键时,我试图抓住它(因此不一定需要关注输入字段)。 So far, however, I'm stuck at intercepting keyboard events at all. 然而,到目前为止,我一直在拦截键盘事件。 This is what I'm currently trying: 这就是我目前正在尝试的:

drivers.DOM.select(':root')
.events('keypress')
// .filter(ev => ev.keyCode === 27)
.map(ev => true)

I've tried catching evens on body and html as well, but both to no avail... 我也试过在bodyhtml上捕捉平衡,但两者都无济于事......

Just make a one-liner keyboard driver: 只需制作单行键盘驱动程序:

Cycle.run(main, {
  DOM: makeDOMDriver(containerElement),
  Keypress: () => Rx.Observable.fromEvent(document, 'keypress'); // <=====
});

Check this example: https://github.com/cyclejs/examples/blob/master/animated-letters/src/main.js#L110 请查看此示例: https//github.com/cyclejs/examples/blob/master/animated-letters/src/main.js#L110

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM