是否有可能捕获这些快捷方式?
我尝试过,但它不起作用:
$(window).keydown(function(event) {
console.log(event.keyCode);
event.preventDefault();
});
当我按下T它显示84
在控制台中时,但如果我按下Ctrl+ T它什么都不显示,并打开一个新选项卡。
我想捕获这些快捷方式并阻止任何浏览器操作。
发布于 2018-03-28 15:05:13
$(window).keydown(function(event) {
if(event.ctrlKey && event.keyCode == 84) {
console.log("Hey! Ctrl+T event captured!");
event.preventDefault();
}
if(event.ctrlKey && event.keyCode == 83) {
console.log("Hey! Ctrl+S event captured!");
event.preventDefault();
}
});
(6.0.1测试)
在Firefox中,这两个事件监听器都能工作 如果按下CtrlT或CtrlS组合键,则会在控制台上看到两条消息,并且浏览器不会打开选项卡,也不会要求保存。
这是intresting,如果你使用alert
的不是console.log
的event.preventDefault()
不是作品,并打开一个新的标签,或者要求保存。也许这个bug需要修复。
在Chrome 3中,它的功能与Firefox相似。
(测试)
在Chrome4中,某些控制组合键仅用于浏览器使用,不能再被网页中的客户端JavaScript拦截。 这些限制在Chrome3中不存在,并且与Firefox3 / 3.5和IE7 / 8(在Windows上)不一致。
在Chrome 4中,除了某些键盘组合外,它与Firefox相似:
这些组合不能被Javascript捕获,但嵌入插件可以捕获这些组合。例如,如果您专注于Youtube视频并按下CtrlT,浏览器将不会打开新标签页。
它的工作原理类似于Firefox或Chrome3。
IE9又是一只黑羊,因为它不允许JavaScript捕捉任何Ctrl?键盘事件。我测试了很多键盘组合(R,T,P,S,N,T),但都没有工作。嵌入应用程序也无法捕获事件。使用Youtube视频进行测试。
发布于 2018-03-28 15:31:10
截至2012年3月20日,已有一个Chrome修复程序允许Web应用程序在js keydown事件中处理Chrome中的Control + NWT(因此它可以在纯JavaScript或任何类似jQuery的库中使用)。
如果Chrome在应用程序模式下打开,此修复程序允许JavaScript处理此组合键,可以通过以下方式完成此操作:
此修复记录在此处:
https://stackoverflow.com/questions/-100007833
复制相似问题