EventTarget事件:keydown

2019-01-22 16:07 更新

EventTarget事件 - keydown

按下某个键时会触发该keydown事件。

与keypress事件不同,无论是否生成字符值,都会为所有键触发keydown事件。

基本信息

接口KeyboardEvent
是否冒泡
是否可取消
目标Document, Element
默认操作变化:keypress事件;启动文本撰写系统;blurfocus事件;DOMActivate事件;其他事件

属性

属性类型描述
target(只读)EventTarget事件目标(DOM树中最顶层的目标)。
type(只读)DOMString事件的类型。
bubbles(只读)Boolean事件是否正常冒泡。
cancelable(只读)Boolean该事件是否可取消。
view(只读)WindowProxyDocument.defaultViewwindow文件)。
detail(只读)longfloat0
target(只读)EventTarget(DOM元素)聚焦元素处理key事件;如果没有合适的输入元素,则为根元素。
char(只读)DOMString(string)key的字符值。如果key对应于可打印字符,则此值是包含该字符的非空Unicode字符串。如果key没有可打印的表示,则为空字符串。
注意:如果该key用作插入多个字符的宏,则此属性的值是整个字符串,而不仅仅是第一个字符。
key(只读)DOMString(string)由事件所表示的key的key值。如果值具有打印表示,则此属性的值与char属性相同。否则,它是Key值中指定的key值字符串之一。如果无法识别key,则为“Unidentified”字符串。
code(只读)DOMString(string)保存一个标识正在按下的物理key的字符串。该值不受当前键盘布局或修改器状态的影响,因此特定key将始终返回相同的值。
charCode(只读)unsigned longintkey的Unicode引用号;此属性仅由keypress事件使用。对于char属性包含多个字符的键,这是该属性中第一个字符的Unicode值。
警告:不推荐使用此属性;你应该使用char,如果可以的话。
keyCode(只读)unsigned longint一种与系统和实现有关的数字代码,用于标识按下的key的未修改值。这通常是与key对应的十进制ASCII(RFC 20)或Windows 1252代码。如果无法识别key,则此值为0
警告:不推荐使用此属性;你应该使用key,如果可以的话。
which(只读)unsigned longint一种与系统和实现有关的数字代码,用于标识按下的key的未修改值;这通常与keyCode是一样的
警告:不推荐使用此属性;你应该使用key,如果可以的话。
location(只读)longfloat密钥在设备上的位置。
repeat(只读)Boolean如果一个key被按下足够长的时间以触发按键重复,则为true;否则为false
locale(只读)DOMStringkey事件的语言代码(如果有);否则,为空字符串。
ctrlKey(只读)Boolean如果在触发事件时控制键已关闭,则为true;否则为false
shiftKey(只读)Boolean如果在事件被触发时shift键已关闭,则为true;否则为false
altKey(只读)Boolean如果事件被触发时alt键已关闭,则为true;否则为false
metaKey(只读)Boolean如果在触发事件时meta键已关闭,则为true;否则为false

笔记

请注意  keydown和keyup 提供一个代码,指示按下哪个键,而keypress指示输入了哪个字符。例如,小写“a”将通过keydown和keyup报告为65,但是会通过keypress报告为97。所有事件都将大写的“A”报告为65。 

示例

每当您按下<input>元素内的键时,此示例都会记录该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}`;
}

规范

DOM L3

浏览器兼容性

从Gecko 25开始,调用keydown事件的preventDefault()会阻止按下keypress事件。这是D3E规范的有效行为,其他主要的Web浏览器也是这样做的。 另一方面,即使在前面的keydown事件的preventDefault()被调用的情况下,Gecko 24或更早的版本调度keypress事件 - 尽管在这种情况下keypress事件的defaultPrevented属性为true。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号