Question

I'm trying to change the background color of web page onLoad. But, the script is not being executed Here is my code.

manifest.json

{
  "name": "Page Redder",
  "description": "Make the current page red",
  "version": "2.0",
  "permissions": [
    "activeTab"
  ],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_title": "Make this page red"
  },
  "manifest_version": 2
}

background.js

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete')
        chrome.tabs.executeScript(tabId, {file:"code.js"});
});

chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript({
    code: 'document.body.style.backgroundColor="green"'
});
});

code.js

document.body.style.backgroundColor="red"

It is working when I click on the Extension Icon. But, code.js is not being executed.

Was it helpful?

Solution

use content scripts. They are much simpler than doing it directly from the background.

content scripts are automatically inserted into your new loaded tab if you use the match "matches": ["<all_urls>"]

documentation: https://developer.chrome.com/extensions/content_scripts

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top