我正在为 Firefox 开发一个扩展,它需要打开一个可以自定义大小的标准 Javascript 弹出窗口。我环顾四周,似乎无法弄清楚该怎么做。我的上下文菜单代码运行良好,但似乎 Firefox 阻止了window.open
完成此操作所需的代码段。
有没有办法通过 XUL 或任何其他 SDK 模块来做到这一点?
我正在为 Firefox 开发一个扩展,它需要打开一个可以自定义大小的标准 Javascript 弹出窗口。我环顾四周,似乎无法弄清楚该怎么做。我的上下文菜单代码运行良好,但似乎 Firefox 阻止了window.open
完成此操作所需的代码段。
有没有办法通过 XUL 或任何其他 SDK 模块来做到这一点?
我们需要更多细节,这就是我认为你想要的。
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
功能在这种情况下工作,但我不确定你没有看到它在什么情况下工作。
希望这对您有所帮助。
如果你想打开的不是弹出窗口而是面板,这里有一个例子:
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();
}
});
和一些参考
您还可以使用:
`<popupset>
<panel id="some">
</panel>
<popupset>`
在 JavaScript 中写:
document.getElementById('some').openPopup(...)