当我将数组从内容脚本发送到后台脚本时,它在后台脚本中变为未定义 内容脚本:
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;
});
请告诉我哪里错了,如何成功发送数组。
答案 0 :(得分:1)
使用
recLink = request;
而不是
recLink = request.sendLink;
在后台脚本中。感谢@wOxxOm解决它。