Javascript 关键事件在Chrome中有效,但在Internet Explorer 11中无效
我编写了一个简单的函数,如果触发了诸如PrintScreen和Windows键之类的键,它将在网页上隐藏我的文档 代码如下:Javascript 关键事件在Chrome中有效,但在Internet Explorer 11中无效,javascript,jquery,jsp,Javascript,Jquery,Jsp,我编写了一个简单的函数,如果触发了诸如PrintScreen和Windows键之类的键,它将在网页上隐藏我的文档 代码如下: document.onkeydown=windowskey; document.onkeyup=打印屏幕键; 功能键(e){ 开关(e.which){ 案例91://左窗 案例92://右侧窗口 $(“#documentViewer”).hide(); 打破 } } 功能打印屏幕键(e){ 开关(e.which){ 案例44://打印屏幕 copyToClipboard(
document.onkeydown=windowskey;
document.onkeyup=打印屏幕键;
功能键(e){
开关(e.which){
案例91://左窗
案例92://右侧窗口
$(“#documentViewer”).hide();
打破
}
}
功能打印屏幕键(e){
开关(e.which){
案例44://打印屏幕
copyToClipboard();
$(“#documentViewer”).show();
打破
案例91://左窗
案例92://右侧窗口
$(“#documentViewer”).show();
打破
}
}
这个功能在Chrome浏览器上运行得很好,但我试着在其他浏览器(如IE11)上测试它,当我按下这些键时,它没有响应或触发任何事件
我真的很想让它标准化,这样它在所有浏览器上都能正常工作
我在这里犯了什么错误吗?并非所有浏览器都支持
e.which
,但jQuery完全支持它。但是,在本例中,它不是jquery事件document.onkeydown=windowskey代码>
我建议您使用e.keyCode
(或两者兼用)
我还建议您使用e.key(而不是e.keyCode),这使您的代码更加可读/易懂,并且它有一个良好的浏览器支持IE9+:developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
switch (e.key) {
case "Down": // IE/Edge specific value
case "ArrowDown":
// Do something for "down arrow" key press.
break;
我在IE上测试过,它确实会触发Windows键,但不会触发打印屏幕,这是为什么?@Daredevil我还建议您使用e.key
(而不是e.keyCode
)这使您的代码更易于阅读/理解,并且它具有良好的浏览器支持IE9+:@Daredevile.key
使用人性化字符串来描述按下的键。它还考虑了修改键,例如shiftKey
,Backspace
,Enter
e.keyCode
另一方面使用代码(数字),例如91
,92
,那么不使用e.keyCode
,新代码看起来如何?但我只对Printscreen和windows按键按钮感兴趣
switch (e.key) {
case "Down": // IE/Edge specific value
case "ArrowDown":
// Do something for "down arrow" key press.
break;