我们已经在POP-UP浏览器窗口中构建了一个正在打开的应用程序。该应用程序模拟Microsoft Word之类的体验。在特定情况下,应用程序捕获CTRL + TAB键盘快捷键事件并执行一些自定义处理(基本上在文档中插入制表符)。
jsfiddle下面的代码片段显示了捕获键盘事件的示例https://jsfiddle.net/wdnug6t8/
document.addEventListener('keydown', (event) => {
const keyName = event.key;
// do not alert when only Control key is pressed.
if (keyName === 'Control') {
return;
}
if (event.ctrlKey) {
alert(`KeyDown: Combination of CTRL + ${keyName}`);
}
}, false);
虽然我理解CTRL + TAB键盘快捷键是保留在浏览器中并用于在选项卡之间导航(当打开多个选项卡时),但只有当浏览器确实将CTRL + TAB事件传递给DOM时这也是正确的打开 ONE标签或以弹出式模式启动浏览器。
基于上述假设,我们按照要求实施了CTRL + TAB,并且在 Firefox版本49.0 之前一直运行良好。但是,从 50及以上版本,这种行为似乎在各种计算机中都被破坏了。
此处需要注意的是,在某些计算机中,虽然计算机配置与任何复制计算机的配置相同,但它仍然可以像以前一样工作。
我还注意到,如果您启用 “Ctrl + Tab循环显示最近使用的订单中的标签 复选框”菜单>选项>一般>选项卡“设置,它还允许键盘事件到达DOM。但是,我们不能要求我们的客户在其计算机上进行此更改,因为其他浏览器(如Chrome,EDGE等)无缝支持此功能。