在处理之前用jQuery拦截所有按键

我有一个网页,我需要拦截所有按键,然后才能将它们分派到dom中具有焦点的任何元素。 当用户键入类似~goto:/index.html:事实上它将来自条形码扫描仪)的东西时,我需要在~之后捕获按键,以便在我到达第二个时解析它们: 。 我已经设法用$(document).keypress()获得了如下内容:

 $(document).ready(function() { $(document).keypress(function(e) { // do the processing here and // return false when ignoring keystrokes }); }); 

问题是我在进入焦点元素后得到了按键。 无论如何得到它,以便我实际上可以拒绝它?

你可能会有更好的运气,它应该在赛前开火

也这样做

 $(document).keydown(function(e) { e.preventDefault(); }); 

调用preventDefault将停止按键的正常进程。 实际上,您可以使用按键并使用preventDefault来完成拦截需求。

阅读有关事件冒泡的内容。 http://www.quirksmode.org/js/events_order.html

这适用于firefox:

  document.addEventListener('keypress',function(e){alert('body1'); e.cancelBubble = true;},true) 

我不确定什么会起作用,因为我链接的文件说,即事件从内向上起泡。 你可能不得不尝试不同的方式。 例如,您可以向您不希望它们处理事件的所有元素添加事件处理程序,然后阻止它们处理该事件处理程序中的事件。