我想将一个数组从我的内容脚本发送到后台页面,以便以后可以使用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) {});
我想要做的是将内容脚本创建的数组发送回后台页面。我对如何解决这个问题感到有点困惑。我是否需要创建第二个请求,或者我可以将数组与上面的响应一起发送。
谢谢大家的帮助。这是我第一次在这里发帖,虽然我长期受益于其他人发布的问题和答案:)
答案 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的扩展程序文档。