javascript - 禁用 Chrome 的文本输入撤消/重做 (CTRL+Z/CTRL+Y)

标签 javascript html google-chrome undo textinput

我目前正在开发一个网络应用程序,但遇到了一个问题。 您可能知道或不知道,chrome 有一个功能可以提供 <input> (尤其是文本输入)当您点击 CTRL+Z 时的“撤消”功能和使用 CTRL+Y 它在普通网站中似乎是一个很好的功能,但目前我正在制作一个图像编辑器,它也使用这些键盘快捷键 (CTRL+Z & CTRL+Y).

在我的应用程序中我也有一个文本输入,所以当我更改文本输入的内容然后点击 CTRL+Z 撤消图像编辑器中的更改时,它会撤消文本编辑器中的更改!

这是一个Codepen这将证明效果
(说明在Codepen中)

所以总而言之,我想删除 chrome 中的撤消/重做功能,我该怎么做?

最佳答案

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>

这个有用吗?

盗自 here , 发现于 here作为@KadeHafen 的评论。

关于javascript - 禁用 Chrome 的文本输入撤消/重做 (CTRL+Z/CTRL+Y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39802159/

相关文章:

javascript - history.pushstate 不更新标题

jquery - 本地存储和 Jquery

javascript - 使用 css 或 javascript 根据用户操作更改 html 页面上的图标

php - 如何将图像添加到此文本?

google-chrome - 如何在CentOS 6.9 中安装谷歌浏览器?

javascript - 使用 FileSystem Api 以 Javascript 写入文件

javascript - 如何保护选定的g :select?

javascript - 使用 CouchDB 进行前端登录

javascript - 使用 remove 作为 append 的对立面不起作用

javascript - 在浏览器中,Chrome 方法 POST 与 GET 类似