2012-01-13 31 views
0

我的Firefox扩展我尝试在浏览器窗口激活或停用时处理事件。在窗口中添加事件“激活”和“停用”基本上工作。但注意到,当我移动窗口时,首先“停用”(当我开始移动时),然后“激活”(当我通过释放鼠标键完成移动时)。对我而言,窗口一直处于活动状态。Firefox扩展:窗口激活/停用事件

移动Firefox窗口时,“停用”/“激活”事件对的最佳/最简单的方法是什么?非常感谢任何提示!

基督教

+0

你究竟想要做什么? – 2012-01-13 15:53:26

+0

我只想跟踪Firefox窗口是否处于活动状态。如果我在窗口之间切换,它的工作方式和预期的一样。我只是不明白为什么每次移动窗口时都会触发“停用”和“激活”事件。 – Christian 2012-01-13 16:59:37

回答

1

如果我理解正确的话,你可以使用这个:

window.addEventListener("blur",function(){ 
//mystuff 
},false); 

这:

window.addEventListener("focus",function(){ 
    //mystuff 
    },false); 
+0

嗨Liran,谢谢你的回复!看来,至少目前对我而言,模糊/对焦和停用/激活具有相同的效果。当在窗口间切换或最小化/最大化Firefox时,它们会引发火灾。但仍然...如果我移动一个已经激活的Firefox窗口,它首先触发模糊/停用事件,然后是焦点/激活事件。调整已经处于活动状态/重点的Firefox窗口时会发生同样的情况。到目前为止,我没有办法“忽略”窗口的移动和调整大小。 – Christian 2012-01-26 09:13:29

+0

好吧,那很奇怪......我知道我对“焦点”事件模拟器有问题,所以最后我用了一个工作: 我使用了3个其他事件:mousedown,模糊,调整大小。 其小工更多的工作,但它的伎俩。希望这有助于如果 不是,我看4其他一些事情。 – Liran 2012-01-29 11:43:23

+0

到目前为止,我通过检查窗口的坐标来尝试一种解决方法,即如果它们已经改变或者没有改变。它不能可靠地工作,因为轻微的鼠标移动导致事件发生,但不一定实际移动窗口。我想我会在一段时间内再次尝试。幸运的是,它更像是一个不错的功能。无论如何,感谢您的努力! – Christian 2012-01-29 16:26:37

0

我终于决定用户基于定时器的解决方案:我不一次处理DEACTIVE事件,但前提是在10秒后没有任何ACTIVATE事件。所以只有十秒后,我认为一个窗口已停用。调整大小/移动通常在少于10秒的时间内完成。当然,没有最佳的解决方案,但充分发挥我的作用。