我正在为Firefox开发一个扩展,需要打开一个可以是自定义大小的标准Javascript弹出窗口。我环顾四周,似乎无法弄清楚如何做到这一点。我的上下文菜单代码运行良好,但似乎Firefox阻止了完成此操作所需的window.open
代码段。
有没有办法通过XUL或任何其他SDK模块进行处理?
答案 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(...)