Javascript 在处理所有按键之前使用jQuery拦截它们

Javascript 在处理所有按键之前使用jQuery拦截它们,javascript,jquery,Javascript,Jquery,我有一个网页,我需要截获所有按键,然后才能将它们发送到dom中具有焦点的任何元素。当用户键入类似于~goto:/index.html:(实际上来自条形码扫描仪)的内容时,我需要捕获~之后的按键,以便在到达第二个:时对其进行解析。我用$(document.keypress()获得了一些东西,如下所示: $(document).ready(function() { $(document).keypress(function(e) { // do the processing here a

我有一个网页,我需要截获所有按键,然后才能将它们发送到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将停止按键的正常过程。实际上,您可以继续使用keypress,只需使用preventDefault即可完成您的拦截需求。

阅读有关事件冒泡的内容。

这适用于firefox:

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

我不确定什么会起作用,也就是说,正如我链接到的文档中所说的,即事件从内部向上冒泡。你可能需要尝试另一种方法来解决这个问题。e、 g.您可以将事件处理程序添加到您不希望它们处理事件的所有元素中,然后阻止它们在该事件处理程序中处理事件

cancelBubble在这里值得注意,它用于IE支持(其他浏览器使用事件对象方法stopPropogation()。