跨浏览器:检测窗口上的模糊事件

M4n*_*h4k 12 javascript blur dom-events

我刚读过,我认为处理这个问题的所有线程,我都无法找到解决问题的真正方法.我需要检测浏览器窗口何时失去焦点,即模糊事件.我已经尝试了stackoverflow上的所有脚本,但似乎没有适当的跨浏览器方法.

Firefox是这里有问题的浏览器.

使用jQuery的常见方法是:

window.onblur = function() { 
   console.log('blur'); 
}
//Or the jQuery equivalent:
jQuery(window).blur(function(){
    console.log('blur');
});
Run Code Online (Sandbox Code Playgroud)

这适用于Chrome,IE和Opera,但Firefox不会检测到该事件.

是否有适当的跨浏览器方式来检测窗口模糊事件?或者,换句话说,有没有办法用Firefox浏览器检测窗口模糊事件?


相关问题和研究:

小智 6

我试过两个:

document.addEventListener('blur', function(){console.log('blur')});
Run Code Online (Sandbox Code Playgroud)

window.addEventListener('blur', function(){console.log('blur')});
Run Code Online (Sandbox Code Playgroud)

他们都在我的FF版本(33.1)中工作.

这是jsfiddle:http://jsfiddle.net/hzdd06eh/

在"运行"窗口内单击,然后在其外部单击以触发效果.


Rin*_*nku 1

您可以在窗口上使用 jQuery 的模糊方法,如下所示:

$(document).ready(function() {
  $(window).blur(function() {
    // Put your blur logic here
    alert("blur!");
  });
});
Run Code Online (Sandbox Code Playgroud)

这适用于 Firefox、IE、Chrome 和 Opera。