在Chrome浏览器中,使用此片段时:KEYUP事件侦听器触发时进入被压在Chrome的Ominbox
$(document).on('keyup', function(){
alert("Hey");
});
每次我在地址栏按enter
(例如,当我剪切和粘贴的网址页面本身)事件监听器触发。 为什么会发生?
编辑:
这让我感到惊讶,因为地址栏是不是在document
(也许在window
?)和Firefox没有这种行为。当我查找e.target
时,Chrome Inspector显示body
。
我认为这可以通过事件引起的鼓泡,所以我尝试这样做:
$(document).on('keyup', function(e){
e.stopPropagation();
alert("Hey");
});
但它不工作。 我该如何防止它被触发?
听起来像窗口*确实*有焦点,即使文档没有。真的不是非常令人惊讶的行为。 – Thor84no 2012-08-16 15:58:23
我不确定,但我知道浏览器的很多插件都是基于JavaScript的,很多浏览器也运行它,所以我猜不是。 – user1601369 2012-08-16 16:01:52
这是不正确的。 Chrome在文档焦点时触发事件。在这种情况下,当你按下回车键时,'onkeydown',文档得到焦点,并且由于文档现在有焦点,'onkeyup',弹出警报。 – 2012-08-25 06:24:29