IE11的快捷键实现
Shortcut key implementation for IE11
我们面临与 IE11 快捷键实现相关的问题。当我们触发 Ctrl+R 事件时,它作为刷新工作IE11的(F5或Ctrl+R)。我们实现了如下快捷键。
任何人都可以帮助我如何覆盖 IE11 快捷键,如 F5 或 Ctrl+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 中,实际上可以捕获 F5、Ctrl+R 和其他标准热键,如 Ctrl+P,但IE总是会在之后甚至同时执行标准动作。
恕我直言,对于您所链接的问题和您自己的问题,最佳答案是:
即使像 Mousetrap or KeyboardJS 这样的大型库也无法可靠地捕获这些类型的快捷键。
我们面临与 IE11 快捷键实现相关的问题。当我们触发 Ctrl+R 事件时,它作为刷新工作IE11的(F5或Ctrl+R)。我们实现了如下快捷键。
任何人都可以帮助我如何覆盖 IE11 快捷键,如 F5 或 Ctrl+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 中,实际上可以捕获 F5、Ctrl+R 和其他标准热键,如 Ctrl+P,但IE总是会在之后甚至同时执行标准动作。
恕我直言,对于您所链接的问题和您自己的问题,最佳答案是:
即使像 Mousetrap or KeyboardJS 这样的大型库也无法可靠地捕获这些类型的快捷键。