1

我曾经在 FireFox 10 和 11 中调度一个关键事件。最近我将浏览器更新到 FireFox 12 并且调度停止工作。

这是我所做的示例代码。

当您在 Firefox 11 或更低版本中运行它时,您可以在文本框中找到打印的字符。

为什么它在 Firefox 12 中不起作用,我该如何解决?任何替代解决方案也适用。

4

3 回答 3

1

这是他们在BugZilla中的回答。出于安全原因,调度关键事件似乎不再被拒绝:

请注意 initKeyEvent() 仍然有效。编辑只是拒绝当前规范中安全性和不清楚的关键事件。

但我仍然无法理解为什么我的调度事件不受信任。

于 2012-05-10T14:02:55.957 回答
1

用一个空输入检查我的小提琴,观察按键事件,然后在输入“A”时替换输入......试试看

编辑:这在其他浏览器中可能会有所不同,但在 Firefox 和 Chrome / Chromium 等现代浏览器中对我有用......持有者 IE 在观察事件时可能表现不同

编辑 2:更新了fiddle rev 1以也像你建议的那样保存一个全局映射......一个小旁注:一些浏览器可能不支持从event.keyCode所以检查event.which中检索输入的密钥代码(jQuery 会将它们组合成event.which并且也会使你轻松观察按键跨浏览器)。

小提琴

于 2012-05-06T15:34:56.943 回答
1

为什么不在页面加载时将值(字符#1740)分配给输入框?喜欢:

$('#name').val(String.fromCharCode(1740))​; 

看到这个jsfiddle

于 2012-05-06T15:14:29.863 回答