Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript捕获ctr-z(撤消)和ctr-y(重做),并执行自定义功能_Javascript_Firefox_Google Chrome_Javascript Events - Fatal编程技术网

使用javascript捕获ctr-z(撤消)和ctr-y(重做),并执行自定义功能

使用javascript捕获ctr-z(撤消)和ctr-y(重做),并执行自定义功能,javascript,firefox,google-chrome,javascript-events,Javascript,Firefox,Google Chrome,Javascript Events,我一直在为特定目的编写一种在线电子表格应用程序,同时我还编写了自己的撤销和重做功能。当用户按下ctr-z或ctr-y时,将撤消或重做对文本字段的最后更改。是一种使用javascript有效劫持页面上任何地方发生的ctr-z和ctr-y按键事件并使它们运行我自己的函数的方法。或至少禁用标准浏览器功能 我只需要在windows上运行最新版本的firefox和chrome即可。您可以在页面上隐藏文本区域,将onclick mouse事件绑定到函数,将焦点设置为文本区域,绑定此文本区域的键盘事件,如果事

我一直在为特定目的编写一种在线电子表格应用程序,同时我还编写了自己的撤销和重做功能。当用户按下ctr-z或ctr-y时,将撤消或重做对文本字段的最后更改。是一种使用javascript有效劫持页面上任何地方发生的ctr-z和ctr-y按键事件并使它们运行我自己的函数的方法。或至少禁用标准浏览器功能


我只需要在windows上运行最新版本的firefox和chrome即可。

您可以在页面上隐藏文本区域,将onclick mouse事件绑定到函数,将焦点设置为文本区域,绑定此文本区域的键盘事件,如果事件为keydown,键为z或y,modifyer为ctrl,则调用重做/撤消操作

使用jQuery:

$(document).keydown(function (keyEvent) {
   var keyCode = keyEvent.keyCode;
   if (keyEvent.metaKey === true || keyEvent.ctrlKey === true) {
      if (keyCode === 89) {
         //fire your custom redo logic
         keyEvent.preventDefault();
         return false;
      } 
      else if (keyCode === 90) {
         //special case (CTRL-SHIFT-Z) does a redo (on a mac for example)
         if (keyEvent.shiftKey === true) {
            //fire your custom redo logic
         }
         else {
            //fire your custom undo logic
         }
         keyEvent.preventDefault();
         return false;
      }
   } 
});

这将处理所有基于键盘的事件。如果用户单击菜单栏中的“撤消”或右键单击并选择“撤消”,则无法处理发生的情况。

如何确定修改器是否为ctrl。函数isKeyPressed(event){if(event.ctrlKey==1){/“按下了CTRL键!”}。。。