How to debug Google Chrome background script? [dup

2019-01-16 18:06发布

问题:

This question already has an answer here:

  • Where to read console messages from background.js in a Chrome extension? 4 answers

I have very simple extension:

manifest.json

{
  "name": "historyCleaner",
  "version": "0.1.1",
  "manifest_version": 1,
  "description": "This is my first Chrome extension",
  "background": {
    "scripts": ["cleaner.js"]
  }, 
  "permissions": [
    "history"
  ]
}

cleaner.js

chrome.history.onVisited.addListener(function(HistoryItem result) {

  console.log("it works!");
  alert("it works!");

});

I've loaded it in Google Chrome, it is turned on and... it doesn't work. It doesn't log anything in console, it doesn't alert anything and what is worse, I can't find it in developers tools "Scripts" tab. How can I find why it doesn't work?

//edit

I've changed manifest.json to this one:

{
  "name": "historyCleaner",
  "version": "0.1.5",
  "manifest_version": 1,
  "description": "This is my first Chrome extension",
  "background_page": "background.html",
  "permissions": [
    "history",
    "background"
  ]
}

And embeded JavaScript in background.html

回答1:

and also if your console.log("it works!"); does not show up, then that's mean chrome.history.onVisited is not fired yet.

ps: For function(HistoryItem result), you may want to change it to function(result).



回答2:

This response might be late but would help the rest. if your background.html has javascript errors then the page will not load (to inspect).

To find out whats wrong with your background.html, under chrome://chrome/extensions/ (i.e., manage extensions), click on the background.html link. This will load the developer tools but without background.html. At the botton-right of the window, you will see a red error symbol, and clicking on it will provide line numbers that needs to be fixed.