如何将面板锚定到窗口小部件(Firefox Addon-SDK)

时间:2013-02-28 17:17:12

标签: firefox widget panel firefox-addon-sdk add-on

Helo,我尝试开发一个(我的第一个)firefox附加组件。它应该在几个定义的URL上显示一个面板,其中包含一些内容。如果我点击小部件符号正常,这是有效的。现在我想,如果用户加载页面,则会显示该面板。

panel.show();显示面板居中。我想将面板映射/锚定到窗口小部件,以便面板显示在rigth底部角落。

解决方案https://gist.github.com/azu/4413137Mozilla "Jetpack" Add-On: Anchor Panel to Widget对我没用。 (带有附加组件的SDK 1.13.2)

我的代码:

thePanel = panel.Panel({
    width: 320,
    height: 170,
    contentScriptFile: [self.data.url('jquery.js'), self.data.url('panel.js')],
    contentScriptWhen: "ready",
    contentScript: "SOMESCRIPT",
    contentURL: self.data.url('thecontent.html'),
    onMessage: function (item) {
      console.log('message : "' + item + '"');
      tabs.open(item);   
    }
});


var widget = widgets.Widget({
    id: "my-id",
    label: ".de",
    panel: thePanel,
    contentURL: self.data.url("favicon.ico"),
    onClick: function() {
        /*blabla*/
    }
});

tabs.on('ready', function(tab) {
  check_content(); // loads thecontent.html for panel content
  thePanel.show(); // Shows panel at center
});

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

thePanel = panel.Panel({
    width: 320,
    height: 170,
    contentScriptFile: [self.data.url('jquery.js'), self.data.url('panel.js')],
    contentScriptWhen: "ready",
    contentScript: "SOMESCRIPT",
    contentURL: self.data.url('thecontent.html'),
    onMessage: function (item) {
      console.log('message : "' + item + '"');
      tabs.open(item);   
    }
});


var widget = widgets.Widget({
    id: "my-id",
    label: ".de",
    //panel: thePanel,
    contentURL: self.data.url("favicon.ico"),
    onClick: function(view) {
        /*This will work*/
       view.panel = thePanel;
       /*This will work*/
    }
});

Instead of using panel.show(), use view.panel = thePanel;