我想知道在純javascript中跨瀏覽器兼容的方式按什麼字符鍵。如何找出按下哪個字符鍵?
回答
「清除」 的JavaScript:
<script type="text/javascript">
function myKeyPress(e){
var keynum;
if(window.event) { // IE
keynum = e.keyCode;
} else if(e.which){ // Netscape/Firefox/Opera
keynum = e.which;
}
alert(String.fromCharCode(keynum));
}
</script>
<form>
<input type="text" onkeypress="return myKeyPress(event)" />
</form>
JQuery的:
$(document).keypress(function(event){
alert(String.fromCharCode(event.which));
});
看一看本網站的跨瀏覽器的不一致性 http://www.quirksmode.org/js/keys.html
只在某些瀏覽器(特別是未火狐)的按鍵事件。 – 2009-12-04 12:44:55
@Tim好點 - 其實我會把它說出來。 – Matt 2009-12-04 12:47:04
使用這一個:
function onKeyPress(evt){
evt = (evt) ? evt : (window.event) ? event : null;
if (evt)
{
var charCode = (evt.charCode) ? evt.charCode :((evt.keyCode) ? evt.keyCode :((evt.which) ? evt.which : 0));
if (charCode == 13)
alert('User pressed Enter');
}
}
這裏對於這個問題的一百萬副本,但在這裏再次去反正:
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.keyCode || evt.which;
var charStr = String.fromCharCode(charCode);
alert(charStr);
};
我看到過的重要事件最好的參考就是http://unixpapa.com/js/key.html。
**check this out**
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).keypress(function(e)
{
var keynum;
if(window.event)
{ // IE
keynum = e.keyCode;
}
else if(e.which)
{
// Netscape/Firefox/Opera
keynum = e.which;
}
alert(String.fromCharCode(keynum));
var unicode=e.keyCode? e.keyCode : e.charCode;
alert(unicode);
});
});
</script>
</head>
<body>
<input type="text"></input>
</body>
</html>
這不是@ Coyod 2009年答案的近似重複嗎? – 2015-05-27 11:25:29
我最喜歡的圖書館之一,以複雜的方式做到這一點是Mousetrap。
它配備備有各種插件,其中之一是record
插件,它可以識別按下的鍵的一個序列。
例子:
<script>
function recordSequence() {
Mousetrap.record(function(sequence) {
// sequence is an array like ['ctrl+k', 'c']
alert('You pressed: ' + sequence.join(' '));
});
}
</script>
<button onclick="recordSequence()">Record</button>
沒錯。會做。 – 2015-11-13 16:24:29
@DanLowe我剛剛添加了一個片段。 – 2015-11-13 16:30:17
最近的和更清潔:使用event.key
。沒有更多的任意數字代碼!
node.addEventListener('keydown', function(event) {
const key = event.key; // "a", "1", "Shift", etc.
});
如果你想被輸入確保只有單個字符,檢查key.length === 1
,或者說,它是你所期望的人物之一。
document.onkeypress = function(event){
alert(event.key)
}
- 1. 如何找出在BlackBerry上按下哪個按鍵
- 2. 找出按下的字符
- 3. 如何確定哪個「+」鍵被按下?
- 4. 如何找出按下鍵盤向下箭頭鍵,編程
- 5. 確定按下哪個鍵
- 6. 如何在按下美元鍵時找出按下按鍵或按鍵事件時的按鍵
- 7. 我如何理解用戶按下了哪個關鍵字?
- 8. 記錄哪些按鍵已按下,並按哪個順序javascript?
- 9. Javascript來找出哪個按鈕被按下
- 10. 如何按下另一個鍵時按下按鍵?
- 11. 如何在按下下一行鍵時添加特殊字符?
- 12. 試圖找出如何引爆的事件時按下Enter鍵在TextBox按下
- 13. 確定哪個鍵被按下
- 14. 找出vim中某個關鍵字/符號屬於哪一個高亮組合
- 15. 按鍵時按鍵找到關鍵字
- 16. 查找哪個子字符串第一個出現,哪個出現第二個,哪個出現第三個
- 17. 如何判斷哪個SHIFT鍵被按下?
- 18. 如何反轉算法以找出哪個字符串生成特定輸出?
- 19. 用JavaScript查找多個按鈕中按下哪個按鈕
- 20. 如何在使用replaceUnique方法時找出哪個鍵衝突?
- 21. 如何找出ModelState的哪個鍵有錯誤
- 22. 如何字符鍵轉換成字符串輸出一個HashMap
- 23. 如何僅在按下鍵時移動字符Python。
- 24. 如何找出哪個單選按鈕被選中?
- 25. 如何找出用戶選擇哪個單選按鈕
- 26. 如何找出哪個按鈕被點擊
- 27. 如何找出哪個按鈕被點擊?
- 28. 如何找出asp:AsynPostBackTrigger中點擊了哪個按鈕?
- 29. 按下某個字符
- 30. 如何判斷哪個MKPinAnnotation被按下?
不都是爲回答這個問題: 「什麼按下鍵_was_?」如果在執行時,JavaScript代碼想知道鍵盤上的按鍵是否被按住? – mwardm 2016-10-07 16:24:27
'event.key'會直接給你按字符 – Gibolt 2017-09-05 18:04:45