我使用ASP> NET MVC,JavaScript,JQuery,KendoUI创建一个应用程序。 是否可以将命令 ctrl + z / ctrl + y 分配给HTML / HTML5中的按钮? 如果是,那么如何?
答案 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()
上看到不同的键码值答案 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框:(。