2012-01-13 75 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秒的時間內完成。當然,沒有最佳的解決方案,但充分發揮我的作用。