创建操作系统浮动窗口firefox扩展

创建操作系统浮动窗口firefox扩展,firefox,firefox-addon-sdk,Firefox,Firefox Addon Sdk,是否可以使用Firefox扩展创建操作系统浮动窗口?这样,当浏览器失去焦点时,窗口就会出现。谷歌搜索并没有带来多少好处。只是需要一些关于这方面的指导/总结 目前的目标操作系统——Mac OS X,如果有必要的话 如果你觉得这个问题很愚蠢,我向你道歉。首先我想知道这样做是否可行。 任何想法都非常感谢。Firebug工作组的pixel perfect扩展正是这样做的-请参阅此文件以了解完整的实现: 创建弹出窗口的核心代码位于以下位置的名为“createPanel”的方法中: 感谢您的提示,但是,每

是否可以使用Firefox扩展创建操作系统浮动窗口?这样,当浏览器失去焦点时,窗口就会出现。谷歌搜索并没有带来多少好处。只是需要一些关于这方面的指导/总结

目前的目标操作系统——Mac OS X,如果有必要的话

如果你觉得这个问题很愚蠢,我向你道歉。首先我想知道这样做是否可行。
任何想法都非常感谢。

Firebug工作组的pixel perfect扩展正是这样做的-请参阅此文件以了解完整的实现:

创建弹出窗口的核心代码位于以下位置的名为“createPanel”的方法中:


感谢您的提示,但是,每当浏览器失去焦点时,面板就会失去焦点。只选择面板窗口将返回整个浏览器窗口。我的问题是-有可能让面板在其他操作系统窗口的顶部可见吗?某种浮动或粘滞的窗口。
createPanel: function() {
   let browser = getMostRecentBrowserWindow();
   let doc = browser.document;

   this.panel = doc.createElementNS(XUL_NS, "panel");
   this.panel.setAttribute("id", "pixel-perfect-panel");
   this.panel.setAttribute("noautohide", "true");
   this.panel.setAttribute("titlebar", "normal");
   this.panel.setAttribute("noautofocus", "true");
   this.panel.setAttribute("label", Locale.$STR("pixelPerfect.title"));
   this.panel.setAttribute("close", "true");
   this.panel.style.border = "0";

   this.panelFrame = doc.createElementNS(XUL_NS, "iframe");
   this.panelFrame.setAttribute("type", "content");
   this.panelFrame.setAttribute("border", "0");
   this.panelFrame.setAttribute("flex", "1");

   // xxxHonza: unregister listeners?
   DomEvents.on(this.panel, "popuphidden", this.onPopupHidden);
   DomEvents.on(this.panel, "popupshown", this.onPopupShown);

   this.panelFrame.setAttribute("src", self.data.url("./popup.html"));
   this.panel.appendChild(this.panelFrame);

   let container = doc.getElementById("mainPopupSet");
   container.appendChild(this.panel);

   // Load content script and handle messages sent from it.
   let { messageManager } = this.panelFrame.frameLoader;
   if (messageManager) {
     let url = self.data.url("popup-frame-script.js");
     messageManager.loadFrameScript(url, false);
     messageManager.addMessageListener("message", this.onMessage);
     messageManager.addMessageListener("sdk/event/ready", this.onPanelReady);
   }

   return this.panel;   
},