Safari extension 如何以编程方式显示Safari扩展popover
我正在尝试编写一个Safari扩展,它由主工具栏上的一个按钮和一个上下文菜单项组成。基本感觉仿照1密码扩展的感觉 popover的工作之一是允许用户登录。我也在有条件地更改上下文菜单项的操作,如果未登录的用户单击菜单项,我希望显示允许他们登录的弹出窗口,但在开发人员指南中找不到这样做的方法Safari extension 如何以编程方式显示Safari扩展popover,safari-extension,Safari Extension,我正在尝试编写一个Safari扩展,它由主工具栏上的一个按钮和一个上下文菜单项组成。基本感觉仿照1密码扩展的感觉 popover的工作之一是允许用户登录。我也在有条件地更改上下文菜单项的操作,如果未登录的用户单击菜单项,我希望显示允许他们登录的弹出窗口,但在开发人员指南中找不到这样做的方法 如何“显示”一个popover?如果您只有一个工具栏项和一个popover(并且从未计划添加更多),那么它只是一行。假设您已经将弹出框指定给Extension Builder中的工具栏项,则只需使用: saf
如何“显示”一个popover?如果您只有一个工具栏项和一个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();
}
在@canisbos有一个关于这个问题的讨论,如果你把你在答案末尾的“便条”放在这里作为答案,我会接受它。还是你认为我们应该投票结束?我觉得尽管答案是一样的,但问题还是不同的。FWIW我在提问之前进行了搜索,没有遇到其他问题。