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