如何通过Firefox Addon上下文菜单打开弹出窗口?

时间:2013-01-28 22:28:37

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

我正在为Firefox开发一个扩展,需要打开一个可以是自定义大小的标准Javascript弹出窗口。我环顾四周,似乎无法弄清楚如何做到这一点。我的上下文菜单代码运行良好,但似乎Firefox阻止了完成此操作所需的window.open代码段。

有没有办法通过XUL或任何其他SDK模块进行处理?

3 个答案:

答案 0 :(得分:4)

我们需要更多细节,这就是我认为您的目标。

require("sdk/context-menu").Item({
  label: "Open Window",
  contentScript: 'self.on("click", function (node, data) {' +
                 '  window.open("http://stackoverflow.com/questions/14572412/how-to-open-a-popup-window-via-firefox-addon-contextual-menu");' +
                 '});'
});

当用户单击“打开窗口”项时,此代码将打开一个新窗口(或选项卡)。 window.open功能在此上下文中有效,但我不确定您在哪种情况下无法使用它。

希望这会对你有所帮助。

答案 1 :(得分:1)

如果你想打开而不是弹出窗口而不是面板,这里有一个例子:

var self = require("sdk/self");
var panels = require("sdk/panel");

var panel = panels.Panel({
    contentURL: self.data.url("panel.html")
    // , onHide: handleHide
});


require("sdk/context-menu").Item({
  label: "Open Window",
  contentScript: 'self.on("click", function (node, data) {' +
                 '  self.postMessage(node.innerHTML);' +
                 '});',
  onMessage: function (data) {
    console.log('posted retrieved: '+data);
    panel.show();
  }
});

还有一些reference

答案 2 :(得分:0)

您也可以使用:

`<popupset>
  <panel id="some">
  </panel>
<popupset>`

在JavaScript中写道:

document.getElementById('some').openPopup(...)