【问题标题】:Javascript check ctrl+sJavascript 检查 ctrl+s
【发布时间】:2017-12-27 10:42:54
【问题描述】:

我是 js 新手。如何检查客户端是否按下组合键ctl+s

$(document).keypress(function(e) {
  if(e.charCode == 17 && e.charCode == 83) {
    alert("ok");
  }
});

这不起作用。包括 Jquery。

【问题讨论】:

  • 您检查浏览器控制台是否有任何错误?另请注意83 是大写S115 是小写s
  • 怎么可能,e.charCode 同时是 17 和 83?
  • @NewToJS 控制台中没有错误。只有其中一个也不起作用。
  • 我只想添加“ctrl + s”(在 Windows 和 linux 上)预期的行为通常是 macOS 上的“cmd + s”预期的,所以(取决于你想要什么实现)您可能也想为此添加处理:)

标签: javascript jquery keyboard


【解决方案1】:

如果你是 jQuery,这将有效。

$(document).ready(function() {
  $(document).keydown(function(event) {
    if (event.ctrlKey && event.keyCode == 83) {
      event.preventDefault()
      //action here
      alert('Saved');
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Press ctrl +s

工作fiddle here

如果你想在mac上检测cmd + s,你需要在不同的浏览器上使用下面提到的键码,因为与Shift/Alt/Ctrl不同,Mac/Apple键不被视为修饰键--相反,您应该挂上 keydown/keyup 并在按下某个键时进行记录:

Firefox: 224
Opera: 17
WebKit (Safari/Chrome): 91 (Left Apple) or 93 (Right Apple)

我来自here

如果您想在保存时关闭浏览器选项卡,window.top.close(); 将起作用,我从here 获得。也为我工作。

【讨论】:

  • 你应该使用event.which 而不是event.keyCode :)
  • 如何从浏览器退出保存过程?
  • @Markus 它根本不应该出现
  • 我不这么认为。它将记录我的消息并打开“保存文件”对话框。 prntscr.com/fyhexv
  • @Markus 也添加了小提琴。
猜你喜欢
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 2012-07-18
  • 1970-01-01
  • 2011-01-07
  • 1970-01-01
  • 1970-01-01
  • 2014-03-06
相关资源
最近更新 更多