簡體   English   中英

使用javascript如何記錄鍵盤事件?

[英]Using javascript how to log keyboard events?

<input type="text"></input>

<script>
var a = document.getElementsByTagName('input')[0];
a.onkeypress = function(evt) {
  this.evt = evt || event;
var b = String.fromCharCode(evt.keyCode);
 while(forEach(evt) {
     alert("You pressed " + b);
   }
};
</script>

這似乎不起作用。 當用戶按下某個鍵時,它應該始終提醒該鍵。 瀏覽器是Chrome。

它不起作用,因為您要在此處調用未定義的函數( forEach ):

while(forEach(evt) {
//    ^

如果您在JavaScript控制台中查看,將會看到與此相關的錯誤。

此外,您不想分配到evt物業this

this.evt = evt || event; // <== Don't do this

只需使用參數:

evt = evt || event;

如果您要分別警告每個按鍵,則沒有循環的理由。

另外, input元素沒有結束標簽。 應該只是:

<input type="text">

或(在XHTML中,也可以在HTML中):

<input type="text"/>

<input type="text"></input>

最后,請注意,某些瀏覽器使用which作為鍵碼,其他瀏覽器使用keyCode 您可以使用|| 使用瀏覽器提供的任何一種:

String.fromCharCode(evt.which || evt.keyCode)

這是一個最小的更新: 實時復制 | 現場直播

<input type="text">
<script>
var a = document.getElementsByTagName('input')[0];
a.onkeypress = function(evt) {
  evt = evt || event;
  alert("You pressed " + String.fromCharCode(evt.which || evt.keyCode));
};
</script>

無需進行while循環。 只需以跨瀏覽器兼容的方式獲取密鑰,找到其等效字符並發出警報。

var a = document.getElementsByTagName('input')[0];
a.onkeypress = function(event) {
  //e.which & e.keyCode are for cross browser compliance
  alert(String.fromCharCode(event.keyCode || event.which)); 
};

工作示例 http://jsfiddle.net/VZEQe/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM