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