【问题标题】:Addon SDK. How I can make popup like this?插件 SDK。我怎样才能制作这样的弹出窗口?
【发布时间】:2014-07-26 22:22:34
【问题描述】:

可以这样制作弹出窗口吗?

里面没有内容。弹出的样式和位置对我来说很有趣。 在工具按钮下,箭头向上指向按钮的中心。

面板小部件没有做同样的事情,它只是在窗口中心弹出。

如何使用 Add-on SDK 弹出此弹出窗口?

【问题讨论】:

标签: javascript css popup firefox-addon firefox-addon-sdk


【解决方案1】:

在 Firefox 30 及更高版本上,您可以像这样将Panel 附加到ToggleButton

var panel = require("sdk/panel").Panel({
    ...

    onHide: function(){
        button.state('window', {checked: false});
    }
});  

var button = require("sdk/ui").ToggleButton({
    ...

    onClick: function(state) {
        if (state.checked) {
            panel.show({
                position: button
            });
        }
    }
});

在调用Panel.show时通过position参数指定附加面板的位置;在这种情况下,我们将其附加到 ToggleButton

更多信息:https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/panel#Attaching_panels_to_buttons

【讨论】:

    【解决方案2】:

    panel API 可让您使用 HTML5(当然还有 Javascript 和 CSS)创建基本面板。

    var panel = require("sdk/panel").Panel({
      contentURL: require("sdk/self").data.url("myFile.html")
    });
    
    panel.show();
    

    然后是 Australis “视图”面板,它们基于 XUL 并与 Australis customization API 更好地集成,例如当“汉堡菜单”中的祖先工具栏按钮时,它看起来更像 Firefox-“原生”和“视图”。没有可用的 SDK 抽象 ATM。

    【讨论】:

    • 其实完全错了,看第一个答案。
    • @canuckistani 我看不出我的答案哪里错了。当然,您可以将 SDK 面板“附加”到按钮上。我从来没有声称你不能!我声称 Australis View 面板看起来更原生并且集成得更好,就像在 i.imgur.com/OBnw55H.png 中一样,这是完全正确的。
    • 这对我来说很好:note.io/1rxCiY8 ...基于所提出的问题,主要是关于箭头、边框和面板本身的外观(正如他所说,而不是内容)
    • @canuckistani 那又怎样?同样,我没有声称面板不是面板。事实上我说的正好相反,您可以使用 SDK 面板 API 创建基本面板。我应该专门包含按钮示例而不是通用示例。在这方面,另一个答案更好,当然,没有争论。然后,我提供了有关 Australis 视图面板的更多信息,这是新的热门事物。因为阅读答案的 OP 和其他人可能也对此感兴趣。
    • 您应该包含按钮示例,因为这就是问题所要求的。您并没有真正回答问题,并添加了一些无助于回答问题的附加信息。这是一票否决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    相关资源
    最近更新 更多