-1

我在用

$(document).keydown(function (event) {
  alert(event.keyCode);
});

加载页面时,此功能非常有用..现在,当我单击页面的任何部分,然后当我按下任何键时,此事件不会触发并且警报不会出现..

为什么?

4

1 回答 1

2

jsfiddle.net/5cyqC/3 单击此处,然后单击其他任何地方的 Server Error oe... 然后查看

您正在将焦点设置为 iframe 的内容。

这是一个单独的文档,事件不会从它冒泡到父文档中。

如果要从中捕获事件,则需要将事件处理程序绑定到框架中加载的文档。

将适用同源政策

当同源策略阻止正常通信时,有关跨 iframe 通信的问题,请参阅此问题。

请注意,无法仅从一侧解决它,因为这将是一个主要的安全漏洞。(例如,有人可以将银行网站放在一个框架中,然后以银行的形式监听按键事件以窃取密码。)

于 2012-11-07T13:16:45.123 回答