- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想弄清楚是否可以重新映射由 Web 应用程序定义的键盘快捷方式,因为那样可以解决这个问题:Frustration over Shift+Space YouTube keyboard shortcut when creating subtitles .
所以,我在想:是否有可能让 Chrome/Mozilla/... 扩展程序捕获和修改 KeyboardEvent
(在这种情况下,只需清除 Shift
空格字符的修饰符),然后再将事件传递给 Web 应用程序?
我一直在寻找这样的扩展,但还没有成功。原则上可以吗?
编辑(响应): 恐怕调度新事件不会产生预期的效果,请参阅 wontfix bugreport和 a note here :
Manually firing an event does not generate the default action associated with that event. For example, manually firing a key event does not cause that letter to appear in a focused text input. In the case of UI events, this is important for security reasons, as it prevents scripts from simulating user actions that interact with the browser itself.
因此,在没有 Shift 修饰符的情况下重新分配相同的键对我来说不起作用(请参阅此 fiddle https://jsfiddle.net/rzh1p5qn/2/)。
最佳答案
在 JavaScript 中,你可以做很多奇怪的事情。不推荐这样做,它会产生错误,但你可以这样做,而且它可以工作。
您只需将 document.addEventListener
替换为您的功能(只需保留原始功能的副本)。为此,您应该首先在页面上添加您的脚本(在任何其他脚本附加事件之前)。
你的函数会有自己的条件,然后执行原来的函数。
您自己的函数将注册用户函数,但您应该将其包装在改变事件对象的条件中。
您可以在触发原始处理程序之前添加任何条件或更改事件。
关于javascript - 是否可以在网页处理之前修改 KeyboardEvent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48248205/
作为现代化/优化计划的一部分,我正在尝试从现有代码库中剥离 jQuery。当用户在文本输入中按下 enter 键时,有几个地方需要发生一些事情。以前,我们通过以下方式完成此操作: $("#loginI
我的理解是,将来浏览器将仅支持两个用于确定按下哪个键的属性,KeyboardEvent.key 和 KeyboardEvent.code。 理论上,KeyboardEvent.key 是以下函数: K
我正在使用 Angular 2 (v2.4),使用 Angular CLI RC0 创建并使用 VS Code 进行编辑,在 KeyboardEvent 类型上出现以下错误:找不到名称'键盘事件' e
这个问题已经有答案了: How can I detect shift + key down in javascript? [duplicate] (2 个回答) Can't fire keypress
我想弄清楚是否可以重新映射由 Web 应用程序定义的键盘快捷方式,因为那样可以解决这个问题:Frustration over Shift+Space YouTube keyboard shortcut
我正在构建此组件,并且依靠 onKeyDown 处理程序中的 event.key 值来允许/禁止某些输入。 文档: https://developer.mozilla.org/en-US/docs/W
我有一段代码: $('body').on('keydown', function(e) { console.log(e.location) }); 看起来 e.location 没有返回任何内
我还没有找到任何有关 KeyboardEvent 中的“detail”属性在 JavaScript 中的用途的信息。 参见this example然后按例如键,(逗号)。 Detail 属性的值为 0
所以这是我的设置: 我的文档类是 Main.as(它扩展了 MovieClip)。以下代码在我的 Main.as 中。 我已经在我的类定义中声明了所有这些变量: private var holder:
出于某种原因,我的自定义 KeyboardEvent 没有冒泡。我负责处理持有的 key : document.addEventListener('DOMContentLoaded', functio
问题 如何在不立即在事件处理程序中执行 return false 的情况下成功防止 KeyboardEvent 冒泡? 注意:该事件的类型为 KeyboardEvent 而我不使用 jQuery,因此
作为我正在观看的教程的一部分,我正在研究一个输入系统,并且在我的谷歌搜索中,我发现只有一种在线方法可以通过应用程序循环中的 switch 语句处理输入。 我找不到教程真正采用 mod 键(如 shif
var el = document.getElementById('action'); el.addEventListener('click', function() { var t = do
MDN 声明 KeyboardEvent.which 已弃用。如何将其替换为未弃用的版本? 例如,我有以下内容: window.onkeydown = (event) => { console.log
我们在我工作的公司遇到了一个有趣的错误:我们有一个包含许多快捷键的应用程序,包括“`”(反引号字符),并且因为 KeyboardEvent.keyCode has been deprecated ,它
我正在尝试创建一个指令,它将小数点限制为最多两个。所以当用户输入一个十进制数时,他最多只能输入两个小数点。 它适用于 Angular,但不适用于 Nativescript Angular。 这是我创建
我正在编写一个按键事件,它为某些控制字符执行特殊功能,但将任何可打印字符插入到字符串中。 this.handle_keypress = function(event) { let callba
就像我在标题中所说的,我想在 Dart 中模拟一个 keyup 事件。问题是我还没有找到如何创建新的 KeyboardEvent 对象。 我发现的唯一方法是使用 Event(String type)
例如按键事件将返回以下内容 KeyboardEvent { charCode: 32, code: "Space", key: " ", // space character
我正在使用找到的自定义输入事件@ http://whattheheadsaid.com/projects/input-special-event. . 问题是我无法获取该事件的 key 代码。有什么想
我是一名优秀的程序员,十分优秀!