如何将消息从Safari扩展弹出窗口传递到全局页面?

Viv*_*vek 1 popover safari-extension

我目前正在构建Safari扩展.我有一个简单的弹出窗口,有3个按钮.在单击这些按钮时,我需要在全局页面上执行一些涉及操作localStorage和其他一些操作的操作.

我似乎无法找到任何方式将消息从弹出窗口发送到全局页面.从弹出窗口到内容脚本的调度似乎有很多主题,但对全局页面没有任何意义.

这可能非常简单,我只是遗漏了一些东西.非常感谢任何帮助.

chu*_*ter 7

您不需要在弹出窗口和全局页面之间使用消息传递.它们共享safari.extension对象,因此您可以从另一个访问任一个上下文.

从弹出框中,您可以访问全局页面的功能和其他对象safari.extension.globalPage.contentWindow.例如,如果您foo在全局页面中有一个函数,则可以使用弹出窗口调用它safari.extension.globalPage.contentWindow.foo().

在全局页面中,您可以访问popover的对象safari.extension.popovers[i].contentWindow,其中i是popover的索引.

顺便说一句,弹出窗口和全局页面共享相同的localStorage对象,因此不需要使用例如safari.extension.globalPage.contentWindow.localStorage来自弹出窗口; localStorage它本身将访问全局页面使用的同一商店.