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

时间:2016-03-26 22:31:48

标签: javascript cyclejs hyperscript

当用户在我的应用程序打开时按下Escape键时,我正试着抓住(所以不一定要关注输入字段)。然而,到目前为止,我一直在拦截键盘事件。这就是我目前正在尝试的:

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

我也曾尝试在bodyhtml上抓住这些内容,但两者都无济于事......

1 个答案:

答案 0 :(得分:3)

只需制作单行键盘驱动程序:

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

选中此示例:https://github.com/cyclejs/examples/blob/master/animated-letters/src/main.js#L110