Safari 扩展框架明确不支持扩展之间的消息传递。我正在寻找一种可行的方法来解决这个问题,而不让页面知道扩展正在运行。
建议(未测试):
一个扩展使用 openTab()打开一个隐藏选项卡到 about:blank#extension-channel。另一个通过 URL 搜索该选项卡并找到它。他们生产和使用该页面上的元素进行交流。
如果扩展可以跨域读取 cookie,则一个在 extension-homepage.com设置一个具有随机 ID 的 cookie,另一个读取它。然后他们创建名为
extension-message-[the random ID]
" 的 DOM 事件,因此页面无法侦听。请愿 Safari 开发人员将 onRequestExternal 添加到他们的 API 中;)
你能想到另一种方法吗?你有没有得到上述任何工作?