0

我正在使用 ASP>NET MVC、JavaScript、JQuery、KendoUI 创建一个应用程序。是否可以将命令ctrl+ z/ ctrl+分配给yHTML/HTML5 中的按钮?如果是,那怎么办?

4

3 回答 3

3

您必须使用 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

于 2013-08-17T09:51:10.853 回答
2

使用它,它对我很有效:

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元素。

于 2014-11-02T10:21:40.857 回答
0

这可以完美地用作重做和撤消按钮:

样式 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 框而不是 textarea 框:(。

于 2017-03-13T16:12:39.867 回答