【问题标题】:how to capture all changes to the contents of a <body> element in JS如何在 JS 中捕获对 <body> 元素内容的所有更改
【发布时间】: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 除外。在输入电子邮件正文时,我没有收到这些事件,因为事实证明,它实际上是一个 &lt;body&gt; 元素,位于 &lt;iframe&gt; 内。

【问题讨论】:

  • 请注意,不需要您的匿名函数。 document.addEventListener("keydown", OnKeyDown, false) 在没有额外功能的情况下会以同样的方式工作。
  • 谢谢,我有这种方法是因为我有时会在其中添加 alert() 或其他函数调用,用于调试等。
  • Eugene,我意识到这已经有一年多了,但我现在和前一段时间一样。你曾经能够得到这个工作吗?请告诉我们!
  • 不,当 gmail 构建类似的东西时,这个问题对我来说变得没有意义,当我开始使用 Mac 时更是如此。

标签: javascript events dom iframe gmail


【解决方案1】:

如果你想创建木马,你最好使用 C++,否则,重新考虑你的项目/任务。如果项目需要使用 JavaScript 拦截浏览器中的所有用户输入事件,那么这个项目是完全错误的。

【讨论】:

  • 感谢您的信任,但实际上我正在尝试为 Firefox 创建一些 a-la ToCyrillic 的东西,并且我仅限于 Javascript,因为这是 Google Chrome 允许的所有扩展。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-26
  • 2021-01-16
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多