I'm trying to pass data from a popup to a content script, but I'm not having any luck. I got it to work the other way around (content -> popup) though. All I want to do is enter text into an input located in the popup and click a submit button which would insert that text into the dom of a web page.
This is what I have:
popup.html
chrome.extension.sendRequest({action:'start'}, function(response) {
console.log('Start action sent');
});
contentscript.js
function startExtension() { console.log('Starting Extension'); }
function stopExtension() { console.log('Stopping Extension'); }
function onRequest(request, sender, sendResponse) {
if (request.action == 'start')
startExtension()
else if (request.action == 'stop')
stopExtension()
sendResponse({});
}
chrome.extension.onRequest.addListener(onRequest);
You need to specify to which tab to send to. Like this:
chrome.tabs.sendMessage(tab.id, {action:'start'}, function(response) {
console.log('Start action sent');
});
If you don't know which is the tab, you can either send to all (probably a bad idea) or make the tab send info first.
For more information check this page: Message Passing.