event.key
を使用してください。 jQuery documentation for .keydown()
のデモに表示されています。
$(iframeDocument).find('body').on('keydown', function(event) {
if (event.key === '%') {
console.log(event.key + ' pressed');
}
});
MDN describes this property:
押されたキーが印刷された表現を持っている場合、返される値は、キーの印字可能な表現を含む空でないUnicode文字列です。
このプロパティは、ブラウザ間で完全に互換性があるわけではありません。サポートされているブラウザーとサポートされていないブラウザーの包括的なリストについては、caniuseを参照してください。確かに、
class Label extends React.Component {
static keydownListener(event) {
this.setState({ label: event.key });
}
constructor() {
super();
this.state = { label: 'Press any key' };
this.listener = Label.keydownListener.bind(this);
window.addEventListener('keydown', this.listener);
}
componentWillUnmount() {
window.removeEventListener('keydown', this.listener);
}
render() {
return (
<div>{this.state.label}</div>
);
}
}
ReactDOM.render(<Label />, document.body);
window.focus();
html, body {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
'event.which'を:あなたは周りの混乱への好奇心だとそれがもたらす何値が表示される場合
は、このデモを試してみてください(それはちょうど楽しみの反応使用しています) ?同等のように見える 'event.keyCode'もあります。しかし、 'keyDown'イベントハンドラをデバッグするときに' event.key'が見つかりません。 – BobRodes