如何检测按Ctrl + R?

我正在编写一个jquery中的函数,如果按下Ctrl + R就会执行,但我似乎无法找出左右ctrl键代码是什么…有人可以帮忙吗?

UPDATE

///this works $(document).keydown(function(e){ if(e.keyCode==17){alert("control was pressed")}; }); 

下一个问题 – 如何链接控制键按下和另一个按键以执行function?

  if(e.keyCode==17){llCtrlPress=1}; if(e.keyCode==97 && llCtrlPress=1){DO SOMETHING} ???????????? 

这似乎可以正常工作但是如何在keyup上将llCtrlpress设置回’0’?

您必须使用keydown函数来捕获Ctrl字符。 这是我对Ctrl + A的实现

  $(document).keydown(function(e) { if (e.keyCode == 65 && e.ctrlKey) { alert('ctrl A'); } }); 

Ctrl-R更难处理,因为在大多数浏览器中,这是重载页面 ,这意味着javascript不会运行,页面会刷新。

同样需要注意的是,keydown / keyupup函数中的keyCode值与keypress函数中的值不同。

编辑:删除了ctrl变量,忘记了ctrlKey

以下是您可以使用的完整密钥代码列表。

这是我用来禁用IE和Firefox上的刷新的代码(适用于F5Ctrl + F5Ctrl + R

  

如果您不想使用useragent来检测它是什么类型的浏览器($ .browser使用navigator.userAgent来确定平台),您可以使用

if('MozBoxSizing' in document.documentElement.style) – 为firefox返回true

你为什么不用e.ctrlKey

  if (e.keyCode == 65 && e.ctrlKey) { alert('ctrl A'); } 

编辑:这是一个适当的函数来检测你的ctrl-r按键并停止浏览器重新加载。

 function keydown(e) { if (e.ctrlKey && e.keyCode == 82) { // 82 = r // TODO: your thing. if (e.preventDefault) { e.preventDefault(); } else { return false; } } } 

我是一个jquery新手,我想你会这样做

 $(document).keydown(keydown); 

对?

有一个名为ctrlKey的布尔属性,你应该可以在这里使用…

 $(document).keypress(function(e) { alert("Ctrl is pressed: " + e.ctrlKey); }); 

使用event.key和现代JS!

 $(document).keypress(function(event) { if (event.key === "r" && event.ctrlKey) { // Do something } }); 

或者没有jQuery:

 document.addEventListener("keypress", function onEvent(event) { if (event.key === "r" && event.ctrlKey) { // Do something better } }); 

Mozilla文档

支持的浏览器

  $(document).ready(function () { $(document).keyup(function (e) { if (e.keyCode == 81 && e.ctrlKey) { //CTRL+Q alert("CTRL+Q"); } else if (e.keyCode == 27) { //ESCAPE alert("escape"); } else if (e.keyCode == 67 && e.altKey) { // ALT+C alert("ALT+C"); } }); }); 

关键代码

Ctrl键的键代码为11

 $(document).keypress(function(e) { alert("Ctrl is pressed: " + e.ctrlKey); });