2014-05-14 36 views
0

我正在创建一个Safari扩展栏,并且希望在其中有多个链接,并且通过单击该链接显示特定于该链接的弹出窗口。在Safari浏览器的扩展栏中创建弹出窗口

到目前为止,我已经找到了这些: https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/AddingPopovers/AddingPopovers.html https://developer.apple.com/library/safari/documentation/UserExperience/Reference/ExtensionClassRef/SafariExtension.html#//apple_ref/javascript/instp/SafariExtension/popovers

然而一切似乎指的是利用他们与工具栏项目,不加长杆。

我想知道是否甚至可以使用扩展栏中的链接使popovers工作,如果有的话,如果有人可以用这个指向正确的方向。

回答

0

当然,为什么不呢?以下是一些示例代码,以帮助您入门。

说你的长杆有这样几个环节:(不是最优雅的方式来运行一些JavaScript代码,当你点击一个链接,但不管)

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

而且,说你有一个单独的toolbarItem(工具栏按钮),你需要一个不同的弹出窗口来弹出它,这取决于你点击的是哪个链接。该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对象,就可以直接操作toolbarItems和开放popovers,而无需将消息传递给全球页面。事实上,您的扩展可能根本不需要全局页面。

相关问题