所有四个箭头键(左上右下)的utf8代码是什么?
我正在学习node.js,并且试图检测何时按下了这些键。
这是我的工作,但是没有一个能捕获箭头键…我是node.js的新手,所以我在这里可能做得很愚蠢。
var stdin = process.stdin; stdin.setRawMode(true); stdin.resume(); stdin.setEncoding('utf8'); stdin.on('data', function(key){ if (key === '39') { process.stdout.write('right'); } if (key === 39) { process.stdout.write('right'); } if (key == '39') { process.stdout.write('right'); } if (key == 39) { process.stdout.write('right'); } if (key == '\u0003') { process.exit(); } // ctrl-c });
谢谢。
您可以使用按键包。尝试页面上给出的示例。
var keypress = require('keypress'); // make `process.stdin` begin emitting "keypress" events keypress(process.stdin); // listen for the "keypress" event process.stdin.on('keypress', function (ch, key) { console.log('got "keypress"', key); if (key && key.ctrl && key.name == 'c') { process.stdin.pause(); } }); process.stdin.setRawMode(true); process.stdin.resume();
您可以按顺序获取箭头键的UTF-8值。
> process.stdin.resume();got "keypress" { name: 'up', ctrl: false, meta: false, shift: false, sequence: '\u001b[A', code: '[A' } > got "keypress" { name: 'down', ctrl: false, meta: false, shift: false, sequence: '\u001b[B', code: '[B' } got "keypress" { name: 'right', ctrl: false, meta: false, shift: false, sequence: '\u001b[C', code: '[C' } got "keypress" { name: 'left', ctrl: false, meta: false, shift: false, sequence: '\u001b[D', code: '[D' }