我正在使用 ASP>NET MVC、JavaScript、JQuery、KendoUI 创建一个应用程序。是否可以将命令ctrl+ z/ ctrl+分配给yHTML/HTML5 中的按钮?如果是,那怎么办?
问问题
2122 次
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 回答