该方法在 shift+enter 等组合键时需特殊处理

三、使用event.repeat

document.addEventListener('keydown',function(e){
	if(e.repeat){
		return ;
	//doSomething...

该方法会有兼容性的问题,参考:http://help.dottoro.com/ljbupnfj.php,https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat

1. 原因 许多入前端不久的人都会遇到 removeEventListener 无法清除监听的情况,这是由于 要移除事件句柄,addEventListener() 的执行函数必须使用外部函数,如上实例所示 (myFunction)。 匿名函数,类似 “document.removeEventListener(“event”, function(){ myScript });” 该事件是无法移除的。 而在很多情况下我们需要句柄回调的传参,又需要其他传参时免不了使用句柄,这个时候我们需要写一个方法去替代这个回调,以下是解决方式,写了一个addListener 函数在 addEventListene var keydown = require ( 'keydown' ) var kd = keydown ( [ '<control>' , 'a' ] ) kd . on ( 'pressed' , function ( ) { // control + a are both pressed right now keydown:当用户按下键盘上的任意键时触发,按住不动将重复触发event.keyCode获得键码 keyup:当用户释放键盘上的键时触发event.keyCode获得键码 keypress:当用户按下键盘上的字符键时触发,按住不动将重复触发event.charCode获得键码 关于keydown与keypress:建议使用keydown <script> // 键盘事件 // e.keyCode 键码值 判断按键的标准 window 之前在写坦克大战时就遇到一个问题,在移动坦克的同时还要发射炮弹。这个时候如果使用onkeydow事件的话,就会在发射炮弹时停止移动,没法同时触发两个keydown事件,为了解决这个问题,我通过在声明多个对象来记录按键的状态。 以移动为例子,假如要通过方向来移动某个在浏览器上的元素,首先给这个元素浮动(在使用canvas画布之类的可以使用里面的API改变元素的位置,这里通过将元素浮动来举例子) onkeydown 按键被按下 对于某个按键一直按着不放,则事件会一直触发 当onkeydown连续触发式,第一次和第二次之间会有一个间隔时间,其他之后会非常的快 这种设计是为了防止我们误操作 onkeyup 按键被松开 键盘事件一般都会绑定给一些可以获取到焦点的对象,或者是document 可以通过keyCode来获取按键的编码 通过它可以判断那个按键被按下 除了keyCo...