【问题标题】:keydown on document is not working when clicked on page? [closed]单击页面时,文档上的 keydown 不起作用? [关闭]
【发布时间】:2012-10-27 13:07:39
【问题描述】:

我正在使用

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

此功能在页面加载时效果很好..现在当我点击页面的任何部分然后当我按下任何键时此事件不会触发并且警报不会出现..

为什么?

【问题讨论】:

  • 我无法重现您的问题:jsfiddle.net/5cyqC
  • 你能提供一个(不)工作的例子,包括相关的html代码等吗?
  • 因为你没有问题,你只是失去了焦点......
  • 我的猜测是您在某处有一个事件处理程序,它阻止了某些元素的事件冒泡到文档中,这可能是由于 return falseevent.stopPropagation()
  • jsfiddle.net/5cyqC/3 click here 然后点击 Server Error oe else... 然后查看

标签: javascript jquery document keydown


【解决方案1】:

jsfiddle.net/5cyqC/3 点击这里,然后点击 Server Error oe 其他任何地方...然后查看

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

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

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

Same Origin Policy 将适用。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    相关资源
    最近更新 更多