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