0
我已經開發了一個Firefox瀏覽器擴展,當瀏覽器窗口大小發生變化時需要通知您。當瀏覽器窗口大小發生變化時,會出現提示通知
我在擴展名的.js文件中使用gBrowser.addeventListener("resize",my_funcion,false);
。 但是,當您通過拖動更改瀏覽器窗口大小時,會經常通知您。我要求窗口參數的最終值在調整大小後完成,不在期間調整大小。
我應該註冊哪個事件來做到這一點?
我已經開發了一個Firefox瀏覽器擴展,當瀏覽器窗口大小發生變化時需要通知您。當瀏覽器窗口大小發生變化時,會出現提示通知
我在擴展名的.js文件中使用gBrowser.addeventListener("resize",my_funcion,false);
。 但是,當您通過拖動更改瀏覽器窗口大小時,會經常通知您。我要求窗口參數的最終值在調整大小後完成,不在期間調整大小。
我應該註冊哪個事件來做到這一點?
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);
我剛剛複製粘貼上述代碼到我的擴展的.js文件,但它不適合我。是否有必要使用此代碼。我未能註冊參加我認爲的活動。幫助我 – 2012-07-30 05:39:03
chromeWindow只是我對鉻窗口的引用。 – 2012-08-03 11:16:04