background.js中的sendResponse()不会将数据发送到内容脚本

时间:2019-02-04 16:33:12

标签: google-chrome-extension

我正在尝试将background.js中的结果数据发送到内容脚本。

这是内容脚本部分:

addMaterias()

这是background.js:

List

这在HTTP请求之后很好地获取了数据。 ... chrome.runtime.sendMessage(keyword, function(response) { try{ console.log("Response: "+ response[data]); }catch(e){ console.log(e); } }); ... 部分的chrome.runtime.onMessage.addListener(function(request,sender,sendResponse){ ... xhrGet(url, function(xhr){ console.log(xhr.responseText); var obj = JSON.parse(xhr.responseText); var result = ""; for(var i = 0 ; i < obj.mean.length ; i++){ result+=obj.mean[i]; if(i != (obj.mean.length-1)){ result+=", "; } } console.log(result); //***Here*** sendResponse({data: result}); }); ... }); function xhrGet(url, callback){ var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.onreadystatechange=function(){ if(this.readyState==4){ callback(this) } }; xhr.send() } 打印我想要的结果。

但是,据我所知,console.log(result)将结果数据作为***Here***变量返回到内容脚本,该变量是回调函数的参数。但是,它继续打印sendResponse()。因此,我想response在发送数据时会出现问题,因为undefined意味着background.js尚未收到任何数据。

有什么问题,我该如何解决?

0 个答案:

没有答案