任何方式重写Ctrl+N打开一个新的窗口在Chrome
Any way to override Ctrl+N to open a new window in Chrome?
我使用一个web应用程序工作,我经常使用的快捷键之一是Ctrl+M。然而,我经常打字很快,错误地按下Ctrl+N,而不是触发我的web应用程序中的操作,我打开一个新窗口。我希望能够防止这种情况发生,但我似乎不知道该怎么做。到目前为止,我已经尝试在每次页面加载时运行此代码,但它似乎没有做任何事情。(忽略我只使用一个键的开关这一事实,我有一些其他自定义Ctrl快捷键,不覆盖正在工作的Chrome快捷键,我只是为了可读性而删除了它们)
document.onkeydown = function(e)
{
if(e.ctrlKey === false)
{
return;
}
switch(e.which) {
case 78:
//just to keep from opening a new tab when merging cells
e.preventDefault();
e.stopPropagation();
break;
default:
return;
}
};
没有办法覆盖Ctrl+N, Ctrl+T,或Ctrl+W在Google Chrome自版本4 Chrome(2010年发货)。
如Chromium问题跟踪器所述:
在Chrome4中,某些控制键组合已保留仅供浏览器使用,并且不能再被网页中的客户端JavaScript截获。
唯一已知的解决办法是打开你的网页/扩展作为一个Chrome应用程序,它将再次有权限覆盖这些黑名单键组合
您可以在这里找到GateOne项目讨论相同问题的github问题。
他们说唯一的解决办法是"创建一个应用程序快捷方式",你现在可以覆盖Ctrl+N键。
在Linux下,可以通过在Xorg级别重新定义键盘映射来禁用组合。然后,对于当前会话中在X下运行的所有应用程序,它将被禁用。在全屏模式下运行的kiosk类型的应用程序中,禁用各种控件组合通常很有用。例如,您的.xinitrc可以设置自定义键盘映射:
#!/usr/bin/env bash
test -f ~/.Xkeymap && xkbcomp ~/.Xkeymap $DISPLAY &
while :; do
/usr/lib/chromium-55.0.2866.0-16k/chrome-wrapper '
--disable-seccomp-filter-sandbox --user-data-dir=.chromium-55.0.2866.0-16k '
--app="http://1.1.1.1:10001/terminal/start" --start-fullscreen '
--kiosk --window-position=0,0 --window-size=1920,1080
done
修改后的。xkeymap会将<LatN>
键重新映射为无害的<F3>
键,当与<Ctrl>
和其他修饰键结合使用时:
type "MYCONTROL" {
modifiers= Shift+Lock+Control+Alt+LevelThree;
map[Shift]= Level2;
map[Lock]= Level2;
map[Alt]= Level3;
map[LevelThree]= Level4;
map[Shift+LevelThree]= Level5;
map[Control+Alt]= Level6;
map[Control]= Level7;
map[Shift+Control]= Level8;
level_name[Level1]= "Base";
level_name[Level2]= "Caps";
level_name[Level3]= "Alt Base";
level_name[Level4]= "L3 Base";
level_name[Level5]= "Shift L3";
level_name[Level6]= "Ctrl+Alt";
level_name[Level7]= "Ctrl Base";
level_name[Level8]= "Shift+Ctrl";
};
...
key <LatN> {
type= "MYCONTROL",
symbols[Group1]= [ n, N, F3, F3, F3, F3, F3, F3 ]
};
相关文章:
- 用javascript将数据从一个窗口传递到另一个窗口
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 从另一个窗口访问document.getElementById
- notify.js没有'如果另一个窗口被聚焦,则不显示通知
- 使用YUI或ExtJS将隐藏的DIV变成一个窗口
- 从另一个窗口对链接触发单击事件
- Atom Electron:在另一个窗口中渲染画布
- 使用Javascript单击选择按钮时,在另一个窗口上显示图像
- Javascript/Jquery如何在另一个窗口中检测点击
- 用JavaScript打开一个新窗口,然后关闭前一个窗口
- 使用Javascript/jQuery在当前窗口后面打开一个窗口
- 从另一个窗口调用 iframe
- 在系统焦点使用Electron的地方打开一个窗口
- 将图像数组从一个窗口传递到另一个窗口,并在javascript的新窗口中显示图像
- 一键在一个窗口中打开两个不同的链接图像
- IE10在打开窗口并再次打开另一个窗口时不起作用
- 你怎么知道javascript是否无法打开一个窗口
- 使用 javascript 打开一个窗口,并从外部源加载 HTML 内容
- 仅在一个窗口中播放声音,该窗口使用javascript(可能是jquery)处于活动状态(在一个网站内)
- 用钛将一个窗口移动到另一个窗口