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

时间:2018-02-27 08:42:57

标签: javascript google-chrome-extension

当我将数组从内容脚本发送到后台脚本时,它在后台脚本中变为未定义 内容脚本:

var sendLink = [];
var canList = document.querySelectorAll(".userName.name");
for(i=0;i<canList.length;i++)
{
    sendLink[i] = canList[i].href; 
    console.log(sendLink[i]);   //shows correct links
}
chrome.runtime.sendMessage(sendLink, function(response) {
    console.log(`message from background: ${JSON.stringify(response)}`);  // shows undefined
    });

后台脚本:

var recLink = [];
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
    recLink = request.sendLink;
    sendResponse({ result: recLink[0] });   //gives error cannot read property 0 of undefined.
    chrome.tabs.create({url: recLink[0]});
    window.open(recLink[0]);
    return true; 
});

请告诉我哪里错了,如何成功发送数组。

1 个答案:

答案 0 :(得分:1)

使用

recLink = request;

而不是

recLink = request.sendLink;

在后台脚本中。感谢@wOxxOm解决它。