将命令ctrl+z/ctrl+y指定给按钮

Assign command ctrl+z/ctrl+y to button?

本文关键字:按钮 ctrl+y 命令 ctrl+z      更新时间:2023-09-26

我正在使用ASP>NETMVC、JavaScript、JQuery和KendoUI创建一个应用程序。是否可以将命令ctrl+z>/<kbd]ctrl>+y分配给HTML/HTML5中的按钮?如果是,那么怎么做?

您必须使用JavaScript来检测按键。

由于您已经在应用程序中使用jQuery,请考虑以下内容:

$(document).keydown(function(e){
  if ( e.ctrlKey && e.keyCode == 122 ) {
      myCtrlZFunction();
  } 
  else if( e.ctrlKey && e.keyCode == 121 ) {
      myCtrlYFunction();
  }
});

keydown的闭包参数中的e是被按下键的数字代码。z的代码是122,y的代码是121。

然后,您真正需要做的就是创建myCtrlZFunction()和myCtrlYFunction(

您可以在上看到不同的键代码值:http://expandinghead.net/keycode.html

使用这个,它对我来说很好:

function execFnct() {
    document.execCommand("undo", false, null);
}

HTML:

<textarea style="width: 499px; height: 230px; border: 1px solid red;"></textarea>
<div style="width: 499px; height: 230px; border: 1px solid red;" contentEditable="true"></div>
<input type="button" onmouseup="execFnct()"/>

在这种情况下,execCommand函数与textarea或任何contentEditable元素一起工作。

这与重做和撤消按钮一样完美:

样式CSS:

.textId { width: 499px; height: 230px; border: 1px solid red; }

JavaScript

function Undo() { document.execCommand("undo", false, null); }
function Redo() { document.execCommand("redo", false, null); }

HTML代码

<textarea class="textId"></textarea>
<div class="textId" contentEditable="true"></div>
<input type="button" onmouseup="Undo()"/ value="Undo">
<input type="button" onmouseup="Redo()"/ value="Redo">

完整示例:

<html><head></head>
<style>.textId { width: 499px; height: 230px; border: 1px solid red; }</style>
<script language="JavaScript">
function Undo() { document.execCommand("undo", false, null); }
function Redo() { document.execCommand("redo", false, null); }
</script>
<body>
<textarea class="textId"></textarea>
<div class="textId" contentEditable="true"></div>
<input type="button" onmouseup="Undo()"/ value="Undo">
<input type="button" onmouseup="Redo()"/ value="Redo">
</body></html>

PS:它可能不调用CTRL+Z和CTRL+Y,但它执行重做和撤消命令。就我个人而言,我仍在努力找出如何在按钮中获得CTRL+V命令。如果你这样做了,请通知我。但无论如何,这个解决方案是我为CTRL+Z和CTRL+Y按钮找到的唯一有效的解决方案,但只适用于div框,而不是文本区域框:(.