在safari的扩展栏中创建一个弹出窗口
Creating a Popover in extension bar for safari
我正在创建一个Safari扩展栏,并希望在其中有多个链接,并通过点击链接有一个特定于该链接的弹出窗口。
到目前为止,我发现了这些:https://developer.apple.com/library/archive/documentation/Tools/Conceptual/SafariExtensionGuide/AddingPopovers/AddingPopovers.htmlhttps://developer.apple.com/documentation/safariextensions/safariextension/1635377-popovers
然而,似乎所有的东西都是指在工具栏项中使用它们,而不是扩展栏。
我想知道是否有可能使弹出窗口与扩展栏中的链接一起工作,如果是这样,如果有人可以用这个向我指出正确的方向。
当然可以,为什么不呢?下面是一些示例代码,可以帮助您入门。
假设你的扩展栏有一对这样的链接:
<a href="javascript:openPopover('p0');">Open Popover 0</a>
<a href="javascript:openPopover('p1');">Open Popover 1</a>
(当你点击一个链接时,这不是运行JavaScript的最优雅的方式,但是不管怎样)
此外,假设你有一个单一的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
对象,因此它可以直接操作工具栏项并打开弹出窗口,而无需将消息传递给全局页面。实际上,您的扩展可能根本不需要全局页面。
相关文章:
- 用javascript将数据从一个窗口传递到另一个窗口
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 从另一个窗口访问document.getElementById
- notify.js没有'如果另一个窗口被聚焦,则不显示通知
- 使用YUI或ExtJS将隐藏的DIV变成一个窗口
- 从另一个窗口对链接触发单击事件
- Atom Electron:在另一个窗口中渲染画布
- 使用Javascript单击选择按钮时,在另一个窗口上显示图像
- Javascript/Jquery如何在另一个窗口中检测点击
- 用JavaScript打开一个新窗口,然后关闭前一个窗口
- 使用Javascript/jQuery在当前窗口后面打开一个窗口
- 从另一个窗口调用 iframe
- 在系统焦点使用Electron的地方打开一个窗口
- 将图像数组从一个窗口传递到另一个窗口,并在javascript的新窗口中显示图像
- 一键在一个窗口中打开两个不同的链接图像
- IE10在打开窗口并再次打开另一个窗口时不起作用
- 你怎么知道javascript是否无法打开一个窗口
- 使用 javascript 打开一个窗口,并从外部源加载 HTML 内容
- 仅在一个窗口中播放声音,该窗口使用javascript(可能是jquery)处于活动状态(在一个网站内)
- 用钛将一个窗口移动到另一个窗口