我试图弄清楚是否可以重新映射由Web应用程序定义的键盘快捷方式,因为这可以解决此问题:Frustration over Shift+Space YouTube keyboard shortcut when creating subtitles。
所以,我在想:Chrome / Mozilla / ...扩展程序是否有可能捕获并修改KeyboardEvent
(在这种情况下,只需清除空格字符的Shift
修饰符)在事件传递给Web应用程序之前?
我一直在寻找这样的延伸,但还没有成功。原则上是否可以这样做?
编辑(回复):我担心发送新活动不会产生预期效果,请参阅此wontfix bugreport和a note here:
手动触发事件不会生成默认操作 与该事件相关联。例如,手动触发键事件 不会导致该字母出现在焦点文本输入中。在里面 在UI事件的情况下,出于安全原因,这很重要 防止脚本模拟与之交互的用户操作 浏览器本身。
因此,在没有Shift修饰符的情况下重新发送相同的键并不起作用(请参阅此小提琴https://jsfiddle.net/rzh1p5qn/2/)。
答案 0 :(得分:1)
在JavaScript中,你可以做很多奇怪的事情。不推荐它,它可以制造错误,但你可以做到,它可以工作。
您只需要用document.addEventListener
替换它即可
你的功能(只需保留原始功能的副本)。为此,您应首先在页面上添加脚本(在任何其他脚本附加事件之前)。
您的功能将有自己的条件,然后执行原始功能。
您自己的函数将注册用户函数,但您应将其包装在更改事件对象的条件中。
您可以在触发原始处理程序之前添加任何条件或更改事件。