我在这里找到了几个关于此的问题,但找不到解决方案。
//Add keyboard shortcuts for convenience.
self.iframe.addEventListener('keydown', function(e){
//Check for alt+p and make sure were not in fullscreen
if(e.altKey && e.keyCode === 80 && !fullScreenApi.isFullScreen()){
self.preview();
}
//Because Macs e == 69, but alt+e == 229 which is the ´ character,
if(e.altKey && e.keyCode === 69 || e.keyCode === 229){
e.preventDefault ? e.preventDefault() : e.returnValue = false;
console.log(e.returnValue);
if(!fullScreenApi.isFullScreen()){
self.edit();
}
}
//Check for alt+f
if(e.altKey && e.keyCode === 70){
e.preventDefault ? e.preventDefault() : e.returnValue = false;
fullScreenApi.requestFullScreen(fsElement);
}
});
我要做的是取消Internet Explorer 9中alt+E
的默认操作。目前它正在完成我想要它做的事情,但同时放下“编辑”菜单。我找到了使用e.returnValue = false
作为解决方案的在线人员,但这似乎不起作用。 console.log(e.returnValue)
返回undefined。
提前致谢!
答案 0 :(得分:0)
很可能在IE中无法做到这一点。我记得在尝试创建一个可以处理ctrl + click的事件处理程序时苦苦挣扎。不幸的是,在IE中产生了一个新的浏览器选项卡,并且该行为被硬编码到浏览器中,似乎独立于其JS引擎。
通常,preventDefault可以解决这个问题,但如果不这样做,你可能需要考虑是否可以为IE用户使用不同的键盘快捷方式,以防默认情况下无法预防。
编辑:虽然,您可能想尝试将stopPropagation()与preventDefault()结合使用。不能保证它会有所帮助,但可能会有所帮助。