首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript捕获浏览器快捷方式(ctrl + t / n / w)

JavaScript捕获浏览器快捷方式(ctrl + t / n / w)
EN

Stack Overflow用户
提问于 2018-03-28 06:27:40
回答 2查看 0关注 0票数 0

是否有可能捕获这些快捷方式?

  • Ctrl+N
  • Ctrl+T
  • Ctrl+W

我尝试过,但它不起作用:

代码语言:javascript
复制
$(window).keydown(function(event) {
  console.log(event.keyCode);
  event.preventDefault();
});

当我按下T它显示84在控制台中时,但如果我按下Ctrl+ T它什么都不显示,并打开一个新选项卡。

我想捕获这些快捷方式并阻止任何浏览器操作。

EN

回答 2

Stack Overflow用户

发布于 2018-03-28 15:05:13

Ctrl在Javascript中捕获键盘事件

示例代码:

代码语言:javascript
复制
$(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(); 
  }
});

Firefox

(6.0.1测试)

在Firefox中,这两个事件监听器都能工作 如果按下CtrlT或CtrlS组合键,则会在控制台上看到两条消息,并且浏览器不会打开选项卡,也不会要求保存。

这是intresting,如果你使用alert的不是console.logevent.preventDefault()不是作品,并打开一个新的标签,或者要求保存。也许这个bug需要修复。

Chrome3

在Chrome 3中,它的功能与Firefox相似。

Chrome4浏览器

(测试)

在Chrome4中,某些控制组合键仅用于浏览器使用,不能再被网页中的客户端JavaScript拦截。 这些限制在Chrome3中不存在,并且与Firefox3 / 3.5和IE7 / 8(在Windows上)不一致。

在Chrome 4中,除了某些键盘组合外,它与Firefox相似:

  • CtrlN
  • CtrlShiftN
  • CtrlT
  • CtrlShiftT
  • CtrlW
  • CtrlShiftW

这些组合不能被Javascript捕获,嵌入插件可以捕获这些组合。例如,如果您专注于Youtube视频并按下CtrlT,浏览器将不会打开新标签页。

IE7 / 8

它的工作原理类似于Firefox或Chrome3。

IE9

IE9又是一只黑羊,因为它不允许JavaScript捕捉任何Ctrl?键盘事件。我测试了很多键盘组合(R,T,P,S,N,T),但都没有工作。嵌入应用程序也无法捕获事件。使用Youtube视频进行测试。

票数 0
EN

Stack Overflow用户

发布于 2018-03-28 15:31:10

截至2012年3月20日,已有一个Chrome修复程序允许Web应用程序在js keydown事件中处理Chrome中的Control + NWT(因此它可以在纯JavaScript或任何类似jQuery的库中使用)。

如果Chrome在应用程序模式下打开,此修复程序允许JavaScript处理此组合键,可以通过以下方式完成此操作:

此修复记录在此处:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档