Intercepting all key presses with jQuery before they are processed

前端 未结 2 1698
被撕碎了的回忆
被撕碎了的回忆 2021-01-19 14:01

I have a web page and I need to intercept all keypresses before they get dispatched to whatever element in the dom has the focus. When the user types something like ~

相关标签:
2条回答
  • 2021-01-19 14:42

    read this about event bubbling. http://www.quirksmode.org/js/events_order.html

    this works for firefox:

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

    I'm not sure what will work for i.e. as the document i linked to says in i.e. the event bubbles from inwards upwards. you may have to try a different way round this. e.g. you could add an event handler to all the element that you do not want them handling the event and then prevent them handling the event in that event handler.

    0 讨论(0)
  • 2021-01-19 14:51

    You will probably have better luck with keydown it should fire before the event

    also do this

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

    calling preventDefault will stop normal process of the key press. Actually, you may be able to stay with keypress and just use the preventDefault to finish your interception needs.

    0 讨论(0)
提交回复
热议问题