Disable Internet Explorer shortcut keys

前端 未结 6 765
臣服心动
臣服心动 2020-12-17 00:52

EDIT: After waited a while and didn\'t get anything yet, I\'ve decided to do shortcut disable thingy only for IE now. Is there a possib

相关标签:
6条回答
  • 2020-12-17 01:10

    There is a nice trick to fight with IE10+, to avoid display browser menus on alt key combinations, like Alt + F, Alt + H ...

    I recently used on IE11, just add an anchor with the attribute accesskey:[yourKey] on your body

    <body>
       <a href="#" accesskey="f"></a>
       <script type="text/javascript">
        window.onkeydown = function(e){
              console.log(e.keyCode + " alt: " + e.altKey);
              e.preventDefault();
        };
        window.onkeyup = function(e){
              console.log(e.keyCode + " alt: " + e.altKey);
              e.preventDefault();
        };
       </script>
    </body>
    

    Now when you press Alt + f the browser will not display "File popup" as usual, and will let events keydown and keyup gets to you, and not only keydown.

    0 讨论(0)
  • 2020-12-17 01:12

    From you application after calling the method on Ctrl+P just make the keycode as zero.I think that will solve your problem...

    window.event.keyCode=0;
    

    this will set the keycode as zero..So when explorer checks for the keyCode it will be zero...so default function will not execute...

    Try this...just a suggestion

    0 讨论(0)
  • 2020-12-17 01:16

    Yes, you can listen for the various key combinations with javascript and disable the default behaviors. There's even a library that you can use and test here. I just tested it using google chrome and firefox in their demo textarea, and it works as you want.

    shortcut.add("Ctrl+P",function() {
        return;
    });
    

    This works in the browsers that I listed above, but IE will not allow you to override the default behavior in some cases.

    Your only option in IE is to disable the Ctrl key entirely with something like:

    document.onkeydown = function () { 
      if (event.keyCode == 17) alert('Ctrl Key is disabled'); 
    };
    

    Which is not ideal and probably not what you want, but it will work.

    0 讨论(0)
  • 2020-12-17 01:20

    This works for me in IE 8. The important part is IE requires ev.returnValue to be set to false. NOTE: this only works if you have focus on some element on the document...that is, if you just load the page and hit 'ctrl-p' you'll see the print dialog. But if you click somewhere on the page, then try it, it should suppress the print dialog.

    document.onkeydown = function (e) { 
    
        var ev = e||window.event; 
    
        // Do what I want keys to do ...
    
        // Block browser short cuts
        if(ev.preventDefault) // non-IE browsers
            ev.preventDefault();
        else  // IE Only
            ev.returnValue = false;
    };
    
    0 讨论(0)
  • 2020-12-17 01:22

    You can try creating an event handler for keydown event, check on the keyCode and prevent its default action if needed. However this will not work in all browsers.

    An example for Firefox (canceling "Print" short key, verified):

    document.addEventListener("keydown", function(oEvent) {
        if (oEvent.keyCode == 80 && oEvent.ctrlKey)
            oEvent.preventDefault();
    }, false)
    
    0 讨论(0)
  • 2020-12-17 01:25

    I am working on similar problem, hooking keyboard event Below code works well to disable, except the flash object on the IE has not got the focus. Since I am trying to handle keyboard event on the flash object, this code does not work for me.

    function hookKeyboardEvents(e) {
        // get key code
        var key_code = (window.event) ? event.keyCode : e.which;
    
        // case :if it is IE event
        if (window.event)
        {
            if (!event.shiftKey && !event.ctrlKey) {
                window.event.returnValue = null;
                event.keyCode = 0;
            }
        }
        // case: if it is firefox event
        else
            e.preventDefault();
    }
    
    window.document.onkeydown = hookKeyboardEvents;
    
    0 讨论(0)
提交回复
热议问题