【发布时间】:2011-04-10 03:58:15
【问题描述】:
我有兴趣做这样的事情:
...
event.preventDefault();
...
el.dispatchEvent(event);
我在 Firefox 中尝试过这个,它抛出了 NS_ERROR_ILLEGAL_VALUE 异常。
是否可以捕获一个事件并在以后触发它?
对于那些感兴趣的人,这是我的高级目标。我正在尝试确定何时在文本区域中输入下划线(即 shift +“-”)。不幸的是,Firefox 报告此事件的 keyCode 和 charCode 为 0,与波浪号 (shift + "`") 击键的值相同。为了消除歧义,我的想法是捕获事件,抑制其默认行为,然后在 另一个 textarea 上“释放”它。然后我会检查这个(隐藏的)文本区域的值以确定按下了哪个键。
更新:我使用的是onkeydown,而不是onkeypress。
【问题讨论】:
-
如果您还没有,请查看https://developer.mozilla.org/event...。 :)
-
(1) 捕获事件时不能只读取文本内容吗? (2)
event.preventDefault();不会真正阻止el.dispatchEvent(event);执行您想要的任何操作吗? -
这很有趣 - String.fromCharCode(95) 返回一个下划线,而 126 是波浪号。你在哪里得到零?
-
啊哈!显然,Firefox 在“keypress”而非“keydown”方面很有帮助(我使用的是“keydown”)。
标签: javascript dom javascript-events event-handling