我正在开发一个Firefox扩展程序,试图让一个面板覆盖一个浏览器元素。这是我的javascript代码:
var panel = oldTabBrowser.contentDocument.createElement('panel');
panel.setAttribute('noautohide','true');
var label = oldTabBrowser.contentDocument.createElement('label');
label.setAttribute('value','my text');
panel.appendChild(label);
elem.appendChild(panel);
panel.openPopup(elem, "overlap",0,0);
alert(panel.getAttribute('noautohide'));
noautohide
属性设置正常,面板按预期显示,但点击任意位置,面板消失。我错过了什么?
答案 0 :(得分:2)
我强烈怀疑noautohide
属性无法正常工作。至少对于<xul:tooltip>
,结果不是我预期的结果。但是,您可以使用popuphiding
event确保您的面板不会过早关闭:
var canClose = false;
panel.addEventListener("popuphiding", function(event)
{
if (!canClose)
{
// Too early to close, prevent it
event.preventDefault();
}
}, false);
panel.openPopup(elem, "overlap",0,0);
...
// Now it is ok to close
canClose = true;
panel.hidePopup();