聊聊KeyCode被棄用后的問題
關(guān)于KeyCode被棄用后的問題
目前在開發(fā)是會發(fā)現(xiàn),鍵盤事件的event事件對象的keyCode=“ASCll碼值”已經(jīng)被棄用了,但是大部分情況是不影響使用的,但是為了避免不必要的麻煩,還是建議大家依據(jù)實際情況做選擇。
解決方法
document.onkeyup = function(event) { event = window.event || event; // 新方法 if (event.key == 'p') { alert("按下了p鍵"); } // 舊方法 if (event.keyCode == 80) { alert("按下了p鍵"); } }
簡單來說就是將
keyCode=“鍵盤的ASCLL碼值”,例 keyCode=“80”、keyCode="76"等
改為
key=“鍵盤的字母內(nèi)容”,例 key=“a”、key=“Alt”、key="Enter"等
個人感覺,簡潔了許多。
按鍵事件中的keycode被棄用,改用e.code替代
js事件中,keyCode
已廢棄,最佳替代寫法為e.code
也有用e.key
寫法的,但是這種寫法不夠準(zhǔn)確,
比如你按鍵盤上的左右兩邊的Ctrl
鍵,e.key
都是Ctrl
,
而e.code
會明確寫出來是CtrlLeft
還是CtrlRight
再比如,在鍵盤上敲擊空格鍵,key
和code
就有明顯的區(qū)別了:
示例:
document.onkeydown = function(e) { console.log('code: ', e.code); }
參考文檔:https://developer.mozilla.org/zh-CN/docs/Web/API/KeyboardEvent/keyCode
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript 嵌套函數(shù)指向this對象錯誤的解決方法
JavaScript對于全局函數(shù)內(nèi)的this綁定為全局對象,而對于嵌套函數(shù)也采用了相同的解釋。2010-03-03使用setTimeout實現(xiàn)SetInterval原理解析
這篇文章主要為大家介紹了使用setTimeout實現(xiàn)SetInterval原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10微信小程序錄音實現(xiàn)功能并上傳(使用node解析接收)
在我們的日常開發(fā)中經(jīng)常會遇到錄音功能,并上傳到服務(wù)器,今天小編給大家分享微信小程序錄音功能實現(xiàn)并上傳錄音文件,使用node解析接收,需要的朋友可以參考下2020-02-02js createRange與createTextRange的一些用法實例
關(guān)于createTextRange和createRange的一些用法,腳本之家增強版。2010-05-05從歷史講起JavaScript基因里的函數(shù)式編程實例
這篇文章主要為大家介紹了從歷史講起JavaScript基因里的函數(shù)式編程實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10詳解多頁應(yīng)用 Webpack4 配置優(yōu)化與踩坑記錄
這篇文章主要介紹了詳解多頁應(yīng)用 Webpack4 配置優(yōu)化與踩坑記錄,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10BootStrap點擊下拉菜單項后顯示一個新的輸入框?qū)崿F(xiàn)代碼
這篇文章主要介紹了BootStrap點擊下拉菜單項后顯示一個新的輸入框?qū)崿F(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2016-05-05