我目前正在开发一个Web应用程序,但遇到了问题。
您可能知道或不知道,chrome有一个功能,可以<input>
(特别是文本输入)和#34;撤消&#34;当你按下CTRL + Z和&#34;重做&#34;使用CTRL + Y,它似乎是普通网站的一个很好的功能,但目前我正在制作一个也使用这些键盘快捷键的图像编辑器(CTRL + Z&amp; CTRL + Y)。
在我的应用程序中我也有一个文本输入,所以当我更改文本输入的内容,然后点击CTRL + Z撤消我的图像编辑器中的更改时,它将取消文本编辑器中的更改而不是!
这里有一个Codepen,可以证明效果
(指令在Codepen中)
总而言之,我想删除chrome中的undo / redo函数,我该怎么做?
答案 0 :(得分:3)
您可以使用onkeydown事件,并使用preventDefault ..例如。
document.onkeydown = function(e) {
if (e.ctrlKey && e.key === 'z') {
e.preventDefault();
alert("CTRL + Z!");
}
}
答案 1 :(得分:2)
var ctrlDown = false;
var ctrlKey = 17, vKey = 86, cKey = 67, zKey = 90;
document.body.onkeydown = function(e) {
if (e.keyCode == 17 || e.keyCode == 91) {
ctrlDown = true;
}
if ((ctrlDown && e.keyCode == zKey) || (ctrlDown && e.keyCode == vKey) || (ctrlDown && e.keyCode == cKey)) {
e.preventDefault();
return false;
}
}
document.body.onkeyup = function(e) {
if (e.keyCode == 17 || e.keyCode == 91) {
ctrlDown = false;
};
};
&#13;
<body>
<input type='text' value='test' />
</body>
&#13;
这有用吗?