【发布时间】:2010-12-28 15:26:07
【问题描述】:
我正在尝试为 Google Chrome 编写扩展程序。我想捕获给定页面上的任何键盘输入,并对它做一些神奇的事情。我可以用这些行做大部分我需要的事情:
document.addEventListener("keydown", function(event) { OnKeyDown(event); }, false);
document.addEventListener("keyup", function(event) { OnKeyDown(event); }, false);
document.addEventListener("keypress", function(event) { OnKeyPress(event); }, false);`
这适用于大多数地方,但 Google Mail 除外。在输入电子邮件正文时,我没有收到这些事件,因为事实证明,它实际上是一个 <body> 元素,位于 <iframe> 内。
【问题讨论】:
-
请注意,不需要您的匿名函数。
document.addEventListener("keydown", OnKeyDown, false)在没有额外功能的情况下会以同样的方式工作。 -
谢谢,我有这种方法是因为我有时会在其中添加 alert() 或其他函数调用,用于调试等。
-
Eugene,我意识到这已经有一年多了,但我现在和前一段时间一样。你曾经能够得到这个工作吗?请告诉我们!
-
不,当 gmail 构建类似的东西时,这个问题对我来说变得没有意义,当我开始使用 Mac 时更是如此。
标签: javascript events dom iframe gmail