如何在内容脚本中调整大小事件?

时间:2012-08-13 04:20:07

标签: javascript firefox firefox-addon firefox-addon-sdk

resize事件不适用于Add-on SDK(1.8)中的内容脚本 这个脚本:https://builder.addons.mozilla.org/package/142401/latest/

main.js:

var Widget = require("widget").Widget;
var tabs = require('tabs');
var self = require('self');
var data = self.data;
var PageMod = require('page-mod').PageMod;

exports.main = function() {

    PageMod({
        include: [data.url("thepage.html")],
        contentScriptWhen: 'start',
        contentScriptFile: [data.url('thescript.js')],
        onAttach: function(worker) {
                console.log("attaching...")
        },
    });

    new Widget({
        id: "my-widget-1",
        label: "Widget",
        contentURL: "http://www.mozilla.org/favicon.ico",
        onClick: function(event) {
            tabs.open(data.url("thepage.html"));
        }
    });
};

thescript.js

console.log('started')
window.onresize = function(){console.log('resized!!!');}; //not working, never calls

如何在内容脚本中创建调整大小事件?

1 个答案:

答案 0 :(得分:2)

通常不建议使用window.onfoo来附加事件侦听器。如果某些其他代码尝试以相同的方式附加事件侦听器(一个事件侦听器将赢,而您不知道哪个),并且won't work if you access window through a wrapper rather than directly,则可能会出现问题。因此,最好使用addEventListener method代替:

window.addEventListener("resize", function() {
  console.log('resized!!!');
}, false);

在您的情况下,这实际上解决了问题 - 在调整窗口大小时触发事件侦听器。