将数组从内容脚本发送到后台页面

时间:2011-12-16 11:02:15

标签: google-chrome-extension

我想将一个数组从我的内容脚本发送到后台页面,以便以后可以使用chrome.extension.getBackgroundPage()从弹出窗口中存储和调用它。

目前,我的背景页面看起来像这样(基于开发者网站上的一个例子)。

<html>
<head>
    <script>

      function onRequest(request, sender, sendResponse) {

        chrome.pageAction.show(sender.tab.id);
        sendResponse({});
      };

      chrome.extension.onRequest.addListener(onRequest);

    </script>
  </head>
</html>

我的内容脚本执行一些简单的正则表达式,如果找到匹配,则回复:

chrome.extension.sendRequest({}, function(response) {});

我想要做的是将内容脚本创建的数组发送回后台页面。我对如何解决这个问题感到有点困惑。我是否需要创建第二个请求,或者我可以将数组与上面的响应一起发送。

谢谢大家的帮助。这是我第一次在这里发帖,虽然我长期受益于其他人发布的问题和答案:)

1 个答案:

答案 0 :(得分:1)

假设您的匹配数组名为matches,您的内容脚本可能会使用以下内容:

chrome.extension.sendRequest({matches: matches}, function(response) {});

然后在您的后台页面中,您可以从请求中提取匹配数组:

function onRequest(request, sender, sendResponse) {
  var matches = request.matches;
  // do stuff with the matches array here
  sendResponse({});
};

通常,您放入request chrome.extension.sendRequest参数的任何数据都会传递给您的onRequest函数。有关详细信息,请参阅有关message passing的扩展程序文档。