当我按住一个按钮时,下一个示例代码会多次输出'keydown'消息.文档说,只需按一下按钮,就会发生一次keydown事件.因此,keydown事件的工作方式与下一个示例中的keypress事件类似.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title></title>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
function onLoad()
{
$( '#text' ).on( 'keydown', function() { console.info( 'keydown' ) } );
}
</script>
</head>
<body onload='onLoad()'>
<input type='text' id='text'>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我在Windows,Firefox 19.0.2和Google Chrome 25.0.1364.152上进行了测试.我也创造了一个小提琴(问题可以复制).重现问题的JQuery版本:1.8.2,1.9.1.
更新.
我确实意识到了这个问题:如何在JavaScript中避免自动重复的keydown事件?.
ASP.NET 2.0 Web应用程序,如何实现快捷键组合CTRL + Letter,最好通过JavaScript,使Web应用程序符合人体工程学更好?如何通过JavaScript捕获多键键盘事件?
我正在创建我自己的编辑器,我终于解决了数周以来一直在回避的撤消/重做问题。
我已经创建了用于存储和遍历自定义操作历史记录的基本框架,但我似乎无法找到有关如何与某个区域中的浏览器历史记录进行交互的良好信息contentEditable。
查看https://github.com/jzaefferer/undo/blob/master/undo.js,我仍然不明白这是如何完成的。
我可以撤消/重做我的自定义操作,但我不知道如何利用浏览器的默认历史记录。
如果要覆盖默认控件 + (z | y),是否必须添加所有原始功能?
更新:在哪里可以找到有关浏览器如何处理这些撤消/重做操作的更多信息?