【问题标题】:Extension notification when there is change in browser window size浏览器窗口大小发生变化时的扩展通知
【发布时间】:2012-07-28 09:32:35
【问题描述】:

我开发了一个 Firefox 扩展,当浏览器窗口大小发生变化时需要通知它。

我用gBrowser.addeventListener("resize",my_funcion,false); 在我的扩展名 .js 文件中。 但是当您通过拖动更改浏览器窗口大小时,会非常频繁地通知这一点。我需要窗口参数的最终值调整大小完成后,不在调整大小期间。

我应该注册哪个活动?

【问题讨论】:

    标签: javascript firefox firefox-addon dom-events


    【解决方案1】:

    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);
    

    【讨论】:

    • 我刚刚将上面的代码复制粘贴到我的扩展程序的 .js 文件中,但它对我不起作用。是否有先决条件需要使用此代码。我没有注册我认为的事件。帮帮我
    • chromeWindow 只是我对 chrome 窗口的引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2019-05-19
    • 2020-01-31
    • 2023-04-07
    相关资源
    最近更新 更多