将命令ctrl + z / ctrl + y分配给按钮?

时间:2013-08-17 09:37:43

标签: javascript html html5

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

3 个答案:

答案 0 :(得分:3)

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

由于您已在应用程序中使用jQuery,请考虑以下事项:

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

e 是按下的键的数字代码。 z的代码是122,代码是y 121。

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

您可以在http://expandinghead.net/keycode.html

上看到不同的键码值

答案 1 :(得分: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元素。

答案 2 :(得分: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框:(。