我在我的应用程序中创建了一些快捷方式。如果我打开chrome并直接进入我的网站,而不先打开其他标签,则快捷方式按预期工作(键是:ctrl + shift + T)。如果我先打开其他选项卡,然后转到我的站点,则选项卡历史记录将填充我之前访问过的选项卡。因此,我的快捷方式不起作用,而不是打开下拉列表,它会打开历史记录中的选项卡。
为此搜索解决方案,人们的建议是“关闭chrome并重新打开它,然后标签历史记录消失”。但这不是我的解决方案。有没有办法解决这个问题?我尝试添加到我的代码中:e.preventDefault();
但这不起作用。我的整个代码如下所示。
document.onkeydown = function(e) {
var pressedKey = String.fromCharCode(e.which).toUpperCase();
array = isoNS.getArr(); //Array containing IDs and shortcuts
for(var i = 0; i < array.length; i++) {
var objectKey = array[i].objectKey.toUpperCase();
if(e.ctrlKey && e.shiftKey) {
e.preventDefault();
if(pressedKey == objectKey) {
isoNS.injectKey(array[i].objectContainerId);
}
}
}
}
所以我想当用户按下ctrl + shift + T时我要做的是清除标签历史记录,然后在我的网站上应用ctrl + shift + T.
聚苯乙烯。这只是chrome中的一个问题,而不是其他浏览器
答案 0 :(得分:1)
有关此here的有趣讨论。实质上;
不幸的是,某些控制键组合已保留给浏览器 仅限使用情况,客户端JavaScript无法再截获 在网页中。
Ctrl Shift T 是其中一种组合,因此您将无法使用JavaScript捕获它。