2014-05-14 111 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,而無需將消息傳遞給全球頁面。事實上,您的擴展可能根本不需要全局頁面。

相關問題