Google 表格如何覆盖浏览器快捷方式?

How does Google Sheets override browser shortcuts?

我正在创建一个复杂的浏览器内应用程序,我想使用 Chrome and/or 其他主要浏览器当前使用的一些键盘快捷键。我在网上搜索并找不到覆盖浏览器快捷方式的方法,但我看到 Google 表格具有我想要的那种功能:用户可以 select 一个选项来覆盖浏览器快捷方式。

Google 张工作表如何进行这项工作?

更新:澄清一下,因为这得到了一些反对票:我知道 event.preventDefault()。问题是它似乎不适用于 Ctrl + t(打开新标签)这样的组合键。

一般的想法是拦截事件并在事件对应于您要覆盖的快捷方式时对其调用 event.preventDefault()。例如,以下代码将阻止您在按 control-1 时导航到最左侧的选项卡:

document.body.addEventListener('keydown', (event) => {
  // keyCode 49 corresponds to the "1" key
  if(event.keyCode==49 && event.ctrlKey) {
    event.preventDefault();
    console.log('default action prevented, doing custom action instead');
  }
});
body {
  background-color: yellow;
}
click me first

根据需要重复任意数量的键代码和修饰符。