我曾经在 FireFox 10 和 11 中调度一个关键事件。最近我将浏览器更新到 FireFox 12 并且调度停止工作。
这是我所做的示例代码。
当您在 Firefox 11 或更低版本中运行它时,您可以在文本框中找到打印的字符。
为什么它在 Firefox 12 中不起作用,我该如何解决?任何替代解决方案也适用。
我曾经在 FireFox 10 和 11 中调度一个关键事件。最近我将浏览器更新到 FireFox 12 并且调度停止工作。
这是我所做的示例代码。
当您在 Firefox 11 或更低版本中运行它时,您可以在文本框中找到打印的字符。
为什么它在 Firefox 12 中不起作用,我该如何解决?任何替代解决方案也适用。
这是他们在BugZilla中的回答。出于安全原因,调度关键事件似乎不再被拒绝:
请注意 initKeyEvent() 仍然有效。编辑只是拒绝当前规范中安全性和不清楚的关键事件。
但我仍然无法理解为什么我的调度事件不受信任。
用一个空输入检查我的小提琴,观察按键事件,然后在输入“A”时替换输入......试试看
编辑:这在其他浏览器中可能会有所不同,但在 Firefox 和 Chrome / Chromium 等现代浏览器中对我有用......持有者 IE 在观察事件时可能表现不同
编辑 2:更新了fiddle rev 1以也像你建议的那样保存一个全局映射......一个小旁注:一些浏览器可能不支持从event.keyCode
所以检查event.which
中检索输入的密钥代码(jQuery 会将它们组合成event.which
并且也会使你轻松观察按键跨浏览器)。