1

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

有没有办法通过 XUL 或任何其他 SDK 模块来做到这一点?

4

3 回答 3

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");' +
                 '});'
});

当用户单击 Open Window 项时,此代码将打开一个新窗口(或选项卡)。该window.open功能在这种情况下工作,但我不确定你没有看到它在什么情况下工作。

希望这对您有所帮助。

于 2013-02-01T22:18:15.967 回答
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();
  }
});

和一些参考

于 2015-10-22T18:32:18.877 回答
0

您还可以使用:

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

在 JavaScript 中写:

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

于 2013-03-11T07:31:17.300 回答