If I call console.log(\'something\');
from the popup page, or any script included off that it works fine.
However as the background page is not directly
You can open the background page's console if you click on the "background.html" link in the extensions list.
To access the background page that corresponds to your extensions open Settings / Extensions
or open a new tab and enter chrome://extensions
. You will see something like this screenshot.
Under your extension click on the link background page
. This opens a new window.
For the context menu sample the window has the title: _generated_background_page.html
.
Any extension page (except content scripts) has direct access to the background page via chrome.extension.getBackgroundPage().
That means, within the popup page, you can just do:
chrome.extension.getBackgroundPage().console.log('foo');
To make it easier to use:
var bkg = chrome.extension.getBackgroundPage();
bkg.console.log('foo');
Now if you want to do the same within content scripts you have to use Message Passing to achieve that. The reason, they both belong to different domains, which make sense. There are many examples in the Message Passing page for you to check out.
Hope that clears everything.
To view console while debugging your chrome extension, you should use the chrome.extension.getBackgroundPage();
API, after that you can use console.log()
as usual:
chrome.extension.getBackgroundPage().console.log('Testing');
This is good when you use multiple time, so for that you create custom function:
const console = {
log: (info) => chrome.extension.getBackgroundPage().console.log(info),
};
console.log("foo");
you only use console.log('learnin')
everywhere
Try this, if you want to log to the active page's console:
chrome.tabs.executeScript({
code: 'console.log("affffd")'
});
The simplest solution would be to add the following code on the top of the file. And than you can use all full Chrome console api as you would normally.
console = chrome.extension.getBackgroundPage().console;
// for instance, console.assert(1!=1) will return assertion error
// console.log("msg") ==> prints msg
// etc
To answer your question directly, when you call console.log("something")
from the background, this message is logged, to the background page's console. To view it, you may go to chrome://extensions/
and click on that inspect view
under your extension.
When you click the popup, it's loaded into the current page, thus the console.log should show log message in the current page.