【问题标题】:Creating a Popover in extension bar for safari在 Safari 的扩展栏中创建 Popover
【发布时间】:2014-07-03 04:55:03
【问题描述】:

我正在创建一个 Safari 扩展栏,并希望在其中包含多个链接,然后单击该链接会出现一个特定于该链接的弹出框。

到目前为止,我已经找到了这些: https://developer.apple.com/library/archive/documentation/Tools/Conceptual/SafariExtensionGuide/AddingPopovers/AddingPopovers.html https://developer.apple.com/documentation/safariextensions/safariextension/1635377-popovers

然而,一切似乎都是指将它们与工具栏项一起使用,而不是扩展栏。

我想知道是否有可能使弹出框与扩展栏中的链接一起使用,如果可以的话,是否有人可以为我指明正确的方向。

【问题讨论】:

    标签: javascript html macos safari safari-extension


    【解决方案1】:

    当然,为什么不呢?这里有一些示例代码可以帮助您入门。

    假设您的扩展栏有几个这样的链接:

    <a href="javascript:openPopover('p0');">Open Popover 0</a>
    <a href="javascript:openPopover('p1');">Open Popover 1</a>
    

    (当你点击一个链接时运行一些 JavaScript 不是最优雅的方式,但无论如何。)

    此外,假设您有一个工具栏项(工具栏按钮),并且您希望根据您单击的栏上的哪个链接在其下方弹出不同的弹出框。 openPopover 函数可以这么简单:

    function openPopover(pid) {
        var tbItem = safari.extension.toolbarItems[0];
        var thisPop = safari.extension.popovers.filter(function (p) {
            return p.identifier == pid;
        })[0];
        tbItem.popover = thisPop;
        tbItem.showPopover();
    }
    

    由于扩展栏可以访问您的扩展的全局safari 对象,它可以直接操作工具栏项和打开弹出框,而无需将消息传递到全局页面。实际上,您的扩展程序可能根本不需要全局页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      相关资源
      最近更新 更多