Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome Chromium将消息传递到弹出扩展插件,即使它未处于活动状态_Google Chrome_Google Chrome Extension - Fatal编程技术网

Google chrome Chromium将消息传递到弹出扩展插件,即使它未处于活动状态

Google chrome Chromium将消息传递到弹出扩展插件,即使它未处于活动状态,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我正在开发一个chrome扩展。如果我用“检查弹出”选项打开弹出页面,当点击上下文菜单时,我能够将消息从后台页面传递到弹出扩展。因为它是这样开着的 但是如果我在弹出页面未打开时单击上下文菜单,它将不会收到任何消息 您是否建议自动打开弹出窗口,使其保持打开状态,或在弹出窗口未处于活动状态时向其发送消息。无法实际打开弹出窗口。仅当弹出窗口打开时,弹出窗口才处于活动状态,这就是为什么关闭时无法向其发送消息的原因 您可以在后台页面中将消息排队,并在下次打开弹出窗口时检索它们。或者取决于您可能考虑使用的功

我正在开发一个chrome扩展。如果我用“检查弹出”选项打开弹出页面,当点击上下文菜单时,我能够将消息从后台页面传递到弹出扩展。因为它是这样开着的

但是如果我在弹出页面未打开时单击上下文菜单,它将不会收到任何消息


您是否建议自动打开弹出窗口,使其保持打开状态,或在弹出窗口未处于活动状态时向其发送消息。

无法实际打开弹出窗口。仅当弹出窗口打开时,弹出窗口才处于活动状态,这就是为什么关闭时无法向其发送消息的原因


您可以在后台页面中将消息排队,并在下次打开弹出窗口时检索它们。或者取决于您可能考虑使用的功能。

打开时,弹出窗口应该请求所需内容,而不是向弹出窗口发送内容

因为弹出窗口只是一个HTML页面,所以它在打开之前不存在

基本上,就像abraham提到的,您可以使用
localStorage
chrome.storage
在后台存储任何信息。当弹出窗口打开时,它应该使用
chrome.extension.getBackgroundPage()
函数获取对后台的引用,从而提供对存储信息的访问


如果您使用的是
localStorage
chrome.storage
,您可以直接访问它,而无需使用后台,因为整个扩展都共享存储。

我应该遵循您的第一个建议。我如何将消息排队?按您的要求。您可以在内存或本地存储中创建消息数组。