XULパネルでnoautohideが動作しないのはなぜですか?

私は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

1 答え

I have a strong suspicion that noautohide attribute doesn't work correctly. At least for the result isn't the one I expected. You can however make sure that your panel doesn't close prematurely using 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();
2
追加された
@Yuttadhammo:私にとってはむしろ、ドキュメントを最初にクリックするとツールチップが閉じます。しかし、もう一度開くと、好きな場所をクリックすると閉じることができます。バグと思われます。
追加された 著者 Wladimir Palant,
私はあなたの疑惑を掘る...面白いことは、それはサイドバーで私のために働くが、タブではない。とにかく、回避策のおかげで、私はそれを試してみましょう。
追加された 著者 yuttadhammo,
私はこれを試みた、それは私のために働くようには見えない...
追加された 著者 yuttadhammo,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript