我开发了一个 Firefox 扩展,当浏览器窗口大小发生变化时需要通知它。
我gBrowser.addeventListener("resize",my_funcion,false);
在我的 .js 文件中使用了扩展名。但是当您通过拖动更改浏览器窗口大小时,会非常频繁地通知这一点。在调整大小完成后,我需要窗口参数的最终值,而不是在调整大小期间。
我应该注册哪个活动来做到这一点?
我开发了一个 Firefox 扩展,当浏览器窗口大小发生变化时需要通知它。
我gBrowser.addeventListener("resize",my_funcion,false);
在我的 .js 文件中使用了扩展名。但是当您通过拖动更改浏览器窗口大小时,会非常频繁地通知这一点。在调整大小完成后,我需要窗口参数的最终值,而不是在调整大小期间。
我应该注册哪个活动来做到这一点?
是否gBrowser.addeventListener("resize",
将调整大小侦听器附加到窗口或标签浏览器?我一直认为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);