2016-08-19 69 views
0

我們將開發Safari擴展。我們有Chrome擴展程序。通過b/w JavaScript文件通過Safari瀏覽器擴展中的Post/Dispatch消息(如Chrome擴展)

我們想要合併safari擴展中的相同代碼,是否有可能這樣做。

但是根據Chrome結構,Chrome使用Background Js與Addon和內部JS進行通信。通過chrome.runtime.sendMessage。 chrome.runtime.sendMessage({ 我們能否使用Safari瀏覽器插件,後臺文件類似的東西,可以處理所有的消息

我們可以通過郵政郵件/羣發留言交流;

附加/ Global = >>插入腳本= >>插件/全局文件

但我們希望通過Post/Dispatch Messaging(Chrome瀏覽器)(Chrome瀏覽器)在JavaScript文件(加載Global/Popover HTML文件)之間進行通信。 runtime.sendMessage)

Local.JS = >> BackGruound.Js = >> Loca l.JS
BackGruound.Js => Content.Js = >> global。

回答

0

蘋果對Converting Chrome Extensions to Safari Extensions指南:

如果你的瀏覽器擴展程序使用瀏覽器或頁面操作,在Safari中使用的工具欄項目。如果您在Chrome中使用彈出窗口,請在Safari中使用彈出窗口。如果您使用了背景頁面,請在Safari中使用全局頁面。您還可以在運行時修改UI的某些部分 - 例如,您可以禁用工具欄項目並添加上下文菜單項。

Safari中發生的事件基於DOM事件系統,如文檔對象模型事件和UIEvents中所述。要設置事件偵聽器,請在應監聽事件的對象上調用addEventListener方法。任何SafariEventTarget或其子類的實例都可以註冊事件監聽器。出於安全原因,您只能在自己的分機中分配消息。

Safari API分爲兩部分:在Web內容區域內運行的Web內容層,以及在其之外運行的應用程序層。要在不同層中運行的腳本之間進行通信,請使用消息。在Safari中,短期消息傳遞與長期連接沒有區別;你對兩者都使用相同的方法。

要在全局頁面和注入腳本之間發送消息,您可以使用Safari的Messages and Proxies