Ctrl-Z/Y 使浏览器专注于最近更改的输入
Posted
技术标签:
【中文标题】Ctrl-Z/Y 使浏览器专注于最近更改的输入【英文标题】:Ctrl-Z/Y makes the browser focus on a recently changed input 【发布时间】:2019-11-01 23:13:17 【问题描述】:我有一个画布 Web 应用程序,我可以通过按 Ctrl+Z 来撤消操作 该应用程序还具有文本输入元素
在某些情况下,当我按下 Ctrl+Z 时,浏览器会自动关注最近更改的输入。有谁知道如何防止这种情况?
我正在使用 Chrome。
【问题讨论】:
明确一点,你想仍然执行撤消/重做操作但不改变焦点?如果是这样,我不相信这是可能的。编辑的字段重新获得焦点是操作系统行为的一部分。 嗯,我害怕那个。还是谢谢 Capturing ctrl+z key combination in javascript的可能重复 你可以拦截document.onkeydown
和return false
来禁用浏览器的control-z。可能依赖于浏览器,但在 Chrome 中对我来说效果很好。小提琴示例(从上面的副本中调整):jsfiddle.net/btm8qkxL
【参考方案1】:
我也遇到了同样的问题,不过有趣的是只在 Windows 上。在事件中调用 preventDefault()
为我解决了问题。
【讨论】:
【参考方案2】:关于 Oak 的回答,就我而言,我不能只是 preventDefault()
每次按键,因为我们需要击键,所以这对我有用:
keyHandler = (e: KeyboardEvent) =>
switch (e.key)
case e.ctrlKey && 'z':
e.preventDefault();
break;
奇怪的是onBlur
不会阻止这种情况的发生,但是如果用户手动单击输入,那么 CTRL + Z 自动不会调用输入...
【讨论】:
以上是关于Ctrl-Z/Y 使浏览器专注于最近更改的输入的主要内容,如果未能解决你的问题,请参考以下文章
jQuery:如何专注于输入文本字段,使光标位于文本的末尾?
更改编辑模式Vue.js + Typescript后如何专注于输入字段