[英]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));
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.