I am trying to send messages between contentscript
and background script
like below
ContentScript.js
chrome.extension.sendMessage({ type : "some" }, function(response) {
anotherFunction( response.data );
return true;
});
function anotherFunction(data){
// Some code here
chrome.extension.sendMessage({ type : "someOther" }, function(response) {
console.log( response.data ); // Failed to get Response
return true;
});
}
Background.js
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
switch(request.type){
case "some":
sendResponse({ data : "Some Response" });
return true;
break;
case "someOther":
// Here I am getting an error. Error is given below
sendResponse({ data : "Some Response" });
break;
}
});
Error
Could not send response: The chrome.runtime.onMessage listener must return true if you want to send a response after the listener returns
How can I fix this issue.?
This should fix it:
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
...
return true; //Important
});
In your case you forgot to add the return in the second case
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With