我正在尝试编写一个Safari扩展程序,它包含主工具栏上的一个按钮,上面有一个popover和一个上下文菜单项。基本感觉是在1Password扩展感觉之后建模的。
popover的一个工作是允许一个人登录。我还有条件地更改了上下文菜单项的操作,如果没有登录的人点击我想要的菜单项显示允许他们登录的popover,但我在开发人员指南中找不到这样做的方法。
如何“显示”弹出窗口?
答案 0 :(得分:6)
如果你只有一个工具栏项和一个popover(并且从不计划添加更多),那么它只是一行。假设您已将弹出窗口分配给Extension Builder中的工具栏项,则可以使用:
safari.extension.toolbarItems[0].showPopover();
但是如果你有多个popover和(可能)多个工具栏项,这里是一个通用函数,用于在活动浏览器窗口的指定工具栏项下打开由其标识符指定的popover:
function showPopover(popoverId, toolbarItemId) {
var toolbarItem = safari.extension.toolbarItems.filter(function (tbi) {
return tbi.identifier == toolbarItemId && tbi.browserWindow == safari.application.activeBrowserWindow;
})[0];
var popover = safari.extension.popovers.filter(function (po) {
return po.identifier == popoverId;
})[0];
toolbarItem.popover = popover;
toolbarItem.showPopover();
}