W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
按下某個鍵時會觸發(fā)該keydown事件。
與keypress事件不同,無論是否生成字符值,都會為所有鍵觸發(fā)keydown事件。
接口 | KeyboardEvent |
---|---|
是否冒泡 | 是 |
是否可取消 | 是 |
目標(biāo) | Document , Element |
默認(rèn)操作 | 變化:keypress 事件;啟動文本撰寫系統(tǒng);blur 和focus 事件;DOMActivate 事件;其他事件 |
屬性 | 類型 | 描述 |
---|---|---|
target (只讀) | EventTarget | 事件目標(biāo)(DOM樹中最頂層的目標(biāo))。 |
type (只讀) | DOMString | 事件的類型。 |
bubbles (只讀) | Boolean | 事件是否正常冒泡。 |
cancelable (只讀) | Boolean | 該事件是否可取消。 |
view (只讀) | WindowProxy | Document.defaultView (window 文件)。 |
detail (只讀) | long (float ) | 0 。 |
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 long (int ) | key的Unicode引用號;此屬性僅由keypress 事件使用。對于char 屬性包含多個字符的鍵,這是該屬性中第一個字符的Unicode值。警告:不推薦使用此屬性;你應(yīng)該使用 char ,如果可以的話。 |
keyCode (只讀) | unsigned long (int ) | 一種與系統(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 long (int ) | 一種與系統(tǒng)和實現(xiàn)有關(guān)的數(shù)字代碼,用于標(biāo)識按下的key的未修改值;這通常與keyCode 是一樣的。警告:不推薦使用此屬性;你應(yīng)該使用 key ,如果可以的話。 |
location (只讀) | long (float ) | 密鑰在設(shè)備上的位置。 |
repeat (只讀) | Boolean | 如果一個key被按下足夠長的時間以觸發(fā)按鍵重復(fù),則為true ;否則為false 。 |
locale (只讀) | DOMString | key事件的語言代碼(如果有);否則,為空字符串。 |
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值。
<input placeholder="Click here, then press down a key." size="40">
<p id="log"></p>
const input = document.querySelector('input');
const log = document.getElementById('log');
input.addEventListener('keydown', logKey);
function logKey(e) {
log.textContent += ` ${e.code}`;
}
DOM L3
從Gecko 25開始,調(diào)用keydown事件的preventDefault()會阻止按下keypress事件。這是D3E規(guī)范的有效行為,其他主要的Web瀏覽器也是這樣做的。 另一方面,即使在前面的keydown事件的preventDefault()被調(diào)用的情況下,Gecko 24或更早的版本調(diào)度keypress事件 - 盡管在這種情況下keypress事件的defaultPrevented屬性為true。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: