EventTarget事件:keydown

2019-01-22 16:07 更新

EventTarget事件 - keydown

按下某個鍵時會觸發(fā)該keydown事件。

與keypress事件不同,無論是否生成字符值,都會為所有鍵觸發(fā)keydown事件。

基本信息

接口KeyboardEvent
是否冒泡
是否可取消
目標(biāo)Document, Element
默認(rèn)操作變化:keypress事件;啟動文本撰寫系統(tǒng);blurfocus事件;DOMActivate事件;其他事件

屬性

屬性類型描述
target(只讀)EventTarget事件目標(biāo)(DOM樹中最頂層的目標(biāo))。
type(只讀)DOMString事件的類型。
bubbles(只讀)Boolean事件是否正常冒泡。
cancelable(只讀)Boolean該事件是否可取消。
view(只讀)WindowProxyDocument.defaultViewwindow文件)。
detail(只讀)longfloat0。
target(只讀)EventTarget(DOM元素)聚焦元素處理key事件;如果沒有合適的輸入元素,則為根元素。
char(只讀)DOMString(string)key的字符值。如果key對應(yīng)于可打印字符,則此值是包含該字符的非空Unicode字符串。如果key沒有可打印的表示,則為空字符串。
注意:如果該key用作插入多個字符的宏,則此屬性的值是整個字符串,而不僅僅是第一個字符。
key(只讀)DOMString(string)由事件所表示的key的key值。如果值具有打印表示,則此屬性的值與char屬性相同。否則,它是Key值中指定的key值字符串之一。如果無法識別key,則為“Unidentified”字符串。
code(只讀)DOMString(string)保存一個標(biāo)識正在按下的物理key的字符串。該值不受當(dāng)前鍵盤布局或修改器狀態(tài)的影響,因此特定key將始終返回相同的值。
charCode(只讀)unsigned longintkey的Unicode引用號;此屬性僅由keypress事件使用。對于char屬性包含多個字符的鍵,這是該屬性中第一個字符的Unicode值。
警告:不推薦使用此屬性;你應(yīng)該使用char,如果可以的話。
keyCode(只讀)unsigned longint一種與系統(tǒng)和實現(xiàn)有關(guān)的數(shù)字代碼,用于標(biāo)識按下的key的未修改值。這通常是與key對應(yīng)的十進制ASCII(RFC 20)或Windows 1252代碼。如果無法識別key,則此值為0。
警告:不推薦使用此屬性;你應(yīng)該使用key,如果可以的話。
which(只讀)unsigned longint一種與系統(tǒng)和實現(xiàn)有關(guān)的數(shù)字代碼,用于標(biāo)識按下的key的未修改值;這通常與keyCode是一樣的。
警告:不推薦使用此屬性;你應(yīng)該使用key,如果可以的話。
location(只讀)longfloat密鑰在設(shè)備上的位置。
repeat(只讀)Boolean如果一個key被按下足夠長的時間以觸發(fā)按鍵重復(fù),則為true;否則為false。
locale(只讀)DOMStringkey事件的語言代碼(如果有);否則,為空字符串。
ctrlKey(只讀)Boolean如果在觸發(fā)事件時控制鍵已關(guān)閉,則為true;否則為false。
shiftKey(只讀)Boolean如果在事件被觸發(fā)時shift鍵已關(guān)閉,則為true;否則為false。
altKey(只讀)Boolean如果事件被觸發(fā)時alt鍵已關(guān)閉,則為true;否則為false
metaKey(只讀)Boolean如果在觸發(fā)事件時meta鍵已關(guān)閉,則為true;否則為false。

筆記

請注意  keydown和keyup 提供一個代碼,指示按下哪個鍵,而keypress指示輸入了哪個字符。例如,小寫“a”將通過keydown和keyup報告為65,但是會通過keypress報告為97。所有事件都將大寫的“A”報告為65。 

示例

每當(dāng)您按下<input>元素內(nèi)的鍵時,此示例都會記錄該KeyboardEvent.code值。

HTML

<input placeholder="Click here, then press down a key." size="40">
<p id="log"></p>

JavaScript

const input = document.querySelector('input');
const log = document.getElementById('log');

input.addEventListener('keydown', logKey);

function logKey(e) {
  log.textContent += ` ${e.code}`;
}

規(guī)范

DOM L3

瀏覽器兼容性

從Gecko 25開始,調(diào)用keydown事件的preventDefault()會阻止按下keypress事件。這是D3E規(guī)范的有效行為,其他主要的Web瀏覽器也是這樣做的。 另一方面,即使在前面的keydown事件的preventDefault()被調(diào)用的情況下,Gecko 24或更早的版本調(diào)度keypress事件 - 盡管在這種情況下keypress事件的defaultPrevented屬性為true。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號