禁用 Chrome 的文本输入 undo/redo (CTRL+Z / CTRL+Y)
Disable Chrome's text input undo/redo (CTRL+Z / CTRL+Y)
我目前正在开发 Web 应用程序,但遇到了问题。
您可能知道或不知道,chrome 有一个功能,当您按 CTRL+[=22 时,它会为 <input>
(尤其是文本输入)提供“撤消”功能=]Z 和 CTRL+Y 的“重做”这在普通网站中似乎是一个很好的功能,但目前我我正在制作一个也使用这些键盘快捷键的图像编辑器 (CTRL+Z & CTRL+Y).
在我的应用程序中我也有一个文本输入,所以当我更改文本输入的内容然后点击 CTRL+Z 到撤消我的图像编辑器中的更改,它会撤消文本编辑器中的更改!
这里有一个 Codepen 可以演示效果
(说明在 Codepen 中)
所以总而言之,我想删除 chrome 中的 undo/redo 函数,我该怎么做?
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;
};
};
<body>
<input type='text' value='test' />
</body>
这个有用吗?
作为 @KadeHafen 的评论从 here, found on here 中窃取。
您可以使用 onkeydown 事件,并防止默认..例如
document.onkeydown = function(e) {
if (e.ctrlKey && e.key === 'z') {
e.preventDefault();
alert("CTRL + Z!");
}
}
我目前正在开发 Web 应用程序,但遇到了问题。
您可能知道或不知道,chrome 有一个功能,当您按 CTRL+[=22 时,它会为 <input>
(尤其是文本输入)提供“撤消”功能=]Z 和 CTRL+Y 的“重做”这在普通网站中似乎是一个很好的功能,但目前我我正在制作一个也使用这些键盘快捷键的图像编辑器 (CTRL+Z & CTRL+Y).
在我的应用程序中我也有一个文本输入,所以当我更改文本输入的内容然后点击 CTRL+Z 到撤消我的图像编辑器中的更改,它会撤消文本编辑器中的更改!
这里有一个 Codepen 可以演示效果
(说明在 Codepen 中)
所以总而言之,我想删除 chrome 中的 undo/redo 函数,我该怎么做?
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;
};
};
<body>
<input type='text' value='test' />
</body>
这个有用吗?
作为 @KadeHafen 的评论从 here, found on here 中窃取。
您可以使用 onkeydown 事件,并防止默认..例如
document.onkeydown = function(e) {
if (e.ctrlKey && e.key === 'z') {
e.preventDefault();
alert("CTRL + Z!");
}
}