2016-11-18 10 views
-2

以前はクロスブラウザ対応のアプローチを使ってJavascriptを使ってどのキーが押されたのかを知りたい。javascriptで以前に押されたキーを見つける方法

+0

どのブラウザ?それとも、あなたが求めているものが欠けていますか? – doctorlove

+0

何が問題だったのですか? – Jamiec

+0

@doctorlove私は 'A'と 'B'キーを押したと言うことができます。 'B'の前に何が押されたのか確認したい場合は 'A' – BPD1

答えて

0

1

これは、ブラウザが自動的に追跡する情報ではありません。あなたはそれを自分でやる必要があります。

キー押しイベントが発生すると、キーコードと変数に格納されている値を比較します。次に、その変数に新しいキーコードを格納します。私はあなたがこのような解決策を探していると思います

var logKeyPress = []; 
 

 
document.addEventListener('keypress', function (e){ 
 
logKeyPress.push(e.key); 
 
document.body.innerHTML = `<p>${logKeyPress.toString()}</p><p>previous Key is: ${logKeyPress[logKeyPress.length-2]}`; 
 
}) 
 

 
document.body.innerText = "Click and Press me";

0
var lastKeyCode; 
document.addEventListener('keypress', function (e){ 
console.log('lastKeyCode', lastKeyCode); 
var nowKeyCode = e.keyCode; 
console.log('nowKeyCode', nowKeyCode); 
lastKeyCode = nowKeyCode; 
}) 
1

あなたは、このような配列では、独自のキー操作ログを保存することができます。

HTML:

<textarea rows="4" cols="50"> 
    Just start typing here ... 
</textarea> 

<p> 
    This is the previously pressed key: <span id="output"> </span> 
</p> 

のJavaScript(jQueryの):

var pressedKeys = []; 
var lastKey; 

$('textarea').on('keydown', function(e) { 
    pressedKeys.push(e.key); 
    lastKey = pressedKeys[pressedKeys.length - 2] 

    $('#output').html(lastKey); 
}); 

がここCodePen上でそれを見る: `onkeypress`では動作しませんhttp://codepen.io/MarkBuskbjerg/pen/Yppbrg

関連する問題