2012-07-28 46 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

相关问题