I found out that you can create a panel with transparency as follows:
var win = Services.wm.getMostRecentWindow('navigator:browser'); var panel = win.document.createElement('panel'); var screen = Services.appShell.hiddenDOMWindow.screen; var props = { noautohide: true, noautofocus: false, level: 'top', style: 'padding:15px; margin:0; width:' + screen.width + 'px; height:' + screen.height + 'px; background-color:rgba(180,180,180,.5);' } for (var p in props) { panel.setAttribute(p, props[p]); } win.document.querySelector('#mainPopupSet').appendChild(panel); panel.addEventListener('dblclick', function () { panel.parentNode.removeChild(panel) }, false); panel.openPopup(null, 'overlap', screen.availLeft, screen.availTop);
To embed an iframe, be sure to include the path to your ".html" as:
"resource: //" your addon id is "-at-jetpack / data / custom_panel.html".
Here is my code:
var win = Services.wm.getMostRecentWindow('navigator:browser'); var panel = win.document.createElement('panel'); var screen = Services.appShell.hiddenDOMWindow.screen; var props = { noautohide: true, noautofocus: false, backdrag: true, level: 'top', style: 'padding:10px; margin:0; width:530px; height:90px; background-color:rgba(180,180,180,.5);' } for (var p in props) { panel.setAttribute(p, props[p]); } var iframe = win.document.createElement('iframe'); iframe.setAttribute('src','resource://"id of your addon"-at-jetpack/data/custom_panel.html'); panel.appendChild(iframe); win.document.querySelector('#mainPopupSet').appendChild(panel); panel.addEventListener('dblclick', function () { panel.parentNode.removeChild(panel) }, false); panel.openPopup(null, 'overlap', screen.availLeft+screen.width/2-256, screen.availTop+760);
Thanks to Noitidart for the help.
source share