2016-08-19 77 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