2012-07-28 41 views
0

我已經開發了一個Firefox瀏覽器擴展,當瀏覽器窗口大小發生變化時需要通知您。當瀏覽器窗口大小發生變化時,會出現提示通知

我在擴展名的.js文件中使用gBrowser.addeventListener("resize",my_funcion,false); 。 但是,當您通過拖動更改瀏覽器窗口大小時,會經常通知您。我要求窗口參數的最終值在調整大小後完成,不在期間調整大小。

我應該註冊哪個事件來做到這一點?

回答

1

gBrowser.addeventListener("resize",是否將調整大小偵聽器附加到窗口或tabbrowser?我一直認爲gBrowser是tabbrowser元素的快捷方式。

當我不得不收聽窗口大小調整事件時,隊列系統似乎是最好的選擇,例如

var queue=0; 
var chromeWinOuterHeight; 
var timer = Components.classes["@mozilla.org/timer;1"].createInstance(Components.interfaces.nsITimer); 

function chromeWinResize(e){ 
    queue++; 
    timer.initWithCallback(function(){ 
     if(queue>1){ 
      queue--; 
     } 
     else if(chromeWinOuterHeight !== e.target.outerHeight){ 
      //do stuff 
     } 
     chromeWinOuterHeight = e.target.outerHeight; 
    }, 500, Components.interfaces.nsITimer.TYPE_ONE_SHOT); 
}; 
chromeWindow.addEventListener('resize',chromeWinResize,false); 
+0

我剛剛複製粘貼上述代碼到我的擴展的.js文件,但它不適合我。是否有必要使用此代碼。我未能註冊參加我認爲的活動。幫助我 – 2012-07-30 05:39:03

+0

chromeWindow只是我對鉻窗口的引用。 – 2012-08-03 11:16:04

相關問題