回答
這樣的事情呢?
var your_array = [];
document.onkeydown = function (e) {
var keyPress;
if (typeof event !== 'undefined') {
keyPress = event.keyCode;
}
else if (e) {
keyPress = e.which;
}
your_array.push(String.fromCharCode(keyPress));
return false; // Prevents the default action
};
UPDATE:如果您需要準確的文字信息(如,大寫小寫從的區別,和其他的東西),一定要看看下面和his other answer@Tim Down's意見。
您需要使用'keypress'事件來獲取輸入的字符,而不是'keydown'事件。 – 2010-09-10 08:58:06
@Tim:根據[quriksmode文章](http://www.quirksmode.org/js/keys.html),'keydown'事件似乎是最可靠的。主要區別在於,在使用'keydown'事件時,您會收到用於小寫和大寫字母的相同'keyCode'(因爲您按相同的鍵)。如果這是可以接受的,取決於OP的建設。我錯過了別的嗎? – 2010-09-10 11:42:33
對於PPK的所有應有的尊重,那個特定的quirksmode表與http://unixpapa.com/js/key.html不同。 quirksmode中的「keyCode和charCode」段落確實包含了它的癥結:'keydown'和'keyup'事件根本不包含字符信息。你可能看到的任何成功都是巧合而不可靠的。如果您擔心Opera缺少對'charCode'的支持,幸運的是Opera支持'which'屬性,因爲它在所有非IE瀏覽器中工作比'charCode'更有用,並且不被quirksmode覆蓋。 – 2010-09-10 14:09:18
在事件處理程序(假設e
的事件對象):
myarray.push(String.fromCharCode(e.charCode));
注意如何fromCharCode
返回給定Unicode字符代碼的字符。另請注意,我如何使用charCode
而不是keyCode
,因爲它在返回字符代碼方面更爲正確,有時這與字符代碼(您需要的字符)不同。
我也會建議'charCode',但有些瀏覽器不支持它:http://www.quirksmode.org/js/keys.html – 2010-09-10 03:51:34
這是一個困難的情況。一方面,對於兼容的瀏覽器,keycode始終是鍵碼,並且charcode始終是Unicode值。在不兼容的瀏覽器上,charcode不存在,並且keycode因鍵盤代碼或Unicode值而異,具體取決於事件的類型。當然,我們需要Unicode值,但在兼容瀏覽器上的keycode中永遠無法看到。根據正在撰寫的網站的環境和訪問者的人口統計,我想是時候繼續前進,並忽略這些明顯不符合標準的瀏覽器。 – 2010-09-10 04:08:02
哪個事件的事件處理程序? 'charCode'只存在於'keypress'事件中。對於IE,'keypress'事件中的'keyCode'是字符代碼,並且在IE中不能獲得用於非打印鍵的按鍵事件,因此您可以相當可靠地獲取字符代碼。看到我的答案。 – 2010-09-10 09:13:32
爲此需要keypress
事件。和keyup
無法可靠地用於獲取角色信息。 Javascript的關鍵事件一個很好的和詳細的說明是在http://unixpapa.com/js/key.html
var charsTyped = [];
document.onkeypress = function(evt) {
evt = evt || window.event;
// Ensure we only handle printable keys
var charCode = typeof evt.which == "number" ? evt.which : evt.keyCode;
if (charCode) {
charsTyped.push(String.fromCharCode(charCode));
}
};
我寫了一個叫keysight翻譯鍵盤事件成鍵和字符庫。
var yourKeyArray = []
node.addEventListener("keydown", function(event) {
var key = keysight(event).key // ignores shift keys, so 'A' is given as 'a'
// var char = keysight(event).char // only characters, and differentiates between 'A' and 'a'
yourKeyArray.push(key)
})
- 1. 如何獲取C中的字符輸入並將其放入數組中?
- 2. 如何從多維數組中獲取值並將其放在JavaScript比較中?
- 3. 從MySql Query獲取信息並將其放入PHP數組中
- 4. 如何獲取date輸入的值並將其放入到javascript中的innerHTML中
- 5. 獲取歌曲數據並將其放入分享按鈕
- 6. 從文本框中獲取文本並將其放入javascript中
- 7. 使用Afnetworking獲取UIImageView並將其放入數組
- 8. 我如何從Firebase獲取數據並將其放入this.props - React
- 9. 如何從用戶獲取輸入並將其放入矩陣?
- 10. 從數組中獲取項目並將其放在循環中
- 11. 如何從數據庫中獲取數據並將其放入fxml中?
- 12. 如何解析XML文件並將其放入AIR中的JavaScript數組中?
- 13. 如何打開文件並將其放入數組中,C
- 14. firebase獲取關鍵值並將其存儲在數組中
- 15. 如何從列表中獲取數據並將其放入數據庫android
- 16. 如何獲取Json數組中的元素並將其內容放入數組列表中?
- 17. 獲取「從多維數組中的特定鍵」的值並放入數組中
- 18. PHP:按值輸入獲取數組鍵。
- 19. Python - 如何讀取一組圖像並將其放入矩陣?
- 20. 如何獲取單個圖像並將其放入localStorage?
- 21. 如何獲取本地時間並將其放入字符串
- 22. 如何獲取2個鍵之間的數組值並將其放入字符串
- 23. Swift獲取tableview數組數並將其放置textview
- 24. 獲取數組中的每個元素並將其放入不同的JTable行
- 25. 如何將項目放入按特定鍵分組的分組數組中
- 26. 如何以編程方式獲取數據樹並將其放入模板中?
- 27. 如何讀取行內容並將它們放入數組中?
- 28. 讀取文件並將其放入數組?
- 29. 如何從XLS文件中提取數據並將其放入二維數組javascript
- 30. 獲取類名,將其拆分並將數組寫入div
爲什麼使用key屬性? 試試這個: document.onkeydown = function(e){alert(e.key);}; 它不需要將keyCode轉換爲字符。 – MURATSPLAT 2014-12-06 15:38:19