<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button id="btn">btn</button>
<input type="text">
<script>
var oBtn = document.getElementById('btn');
console.log(oBtn);
oBtn.onclick = function (event) {
console.log("click");
oBtn.blur();
}
oBtn.onkeydown = function (event) {
event.preventDefault();
event.stopPropagation();
console.log("key down");
}
</script>
</body>
</html>
在button按钮获取到焦点后,按下空格键,这个时候会触发键盘事件和点击事件。
如果阻止冒泡和默认事件的话,在Chrome和IE下可以组织点击事件,但是在火狐上不能阻止点击事件。
如果想要在所有的浏览器上阻止,可以在点击后取消这个按钮的焦点。但是如果是使用 Tab 把焦点切换到button按钮上那还是没法处理。