IE11的快捷键实现

Shortcut key implementation for IE11

我们面临与 IE11 快捷键实现相关的问题。当我们触发 Ctrl+R 事件时,它作为刷新工作IE11的(F5Ctrl+R)。我们实现了如下快捷键。

任何人都可以帮助我如何覆盖 IE11 快捷键,如 F5Ctrl+R.

我们也尝试了下面的 link。我们无法了解它是如何工作的。

Is there a way to capture/override Ctrl-R or F5 on IE using Javascript?

document.addEventListener("keydown", onKeyDown, false);
function onKeyDown(e) {
    e = e || window.event;
    var keyValue=0;
    var set = new Set([65,80,81,82,85,45,46]);
    var cont=false;
    //var isIE11 = navigator.userAgent.test(/Trident.*rv[ :]*11\./);
    if(isIE11){
        alert("ie11");
    }else{
        alert("not ie");    
    }
    if(e.ctrlKey){
        keyValue=17;
        if(set.has(e.keyCode)){
            cont=true;
        }
    }else if(e.shiftKey){
        keyValue=16;
        if((e.keyCode>=113 && e.keyCode<=118)&& e.keyCode!=115){
            cont=true;
        }
    }else if(e.altKey){
        keyValue=18;
        if(e.keyCode==76){
            cont=true;
        }
    }else if(e.keyCode>112&& e.keyCode<=123){
        cont=true;
    }
    if(cont){
        e.preventDefault();
        e.stopPropagation();
        e.returnValue = false;
        //tempAlert("close",5000);
        zAu.send(new zk.Event(zk.Widget.$('#content'), 'onCtrlKey', {key:e.keyCode,ctrlKey:keyValue},{toServer:true}));
    }
    return false;
}

谢谢

斯坦苏

很抱歉告诉你一个坏消息,但出于安全原因,这是不允许的。在 IE 中,实际上可以捕获 F5Ctrl+R 和其他标准热键,如 Ctrl+P,但IE总是会在之后甚至同时执行标准动作。

恕我直言,对于您所链接的问题和您自己的问题,最佳答案是:

即使像 Mousetrap or KeyboardJS 这样的大型库也无法可靠地捕获这些类型的快捷键。