我正在尝试使用Google Chrome扩展程序,我遇到的第一个问题是我想在加载页面时自动更改正文背景颜色(不点击扩展图标)但我的内容脚本没有启动:
的manifest.json:
{
"name": "Test Extension",
"description": "Testing",
"version": "1.0",
"permissions": [
"tabs", "webNavigation"
],
"browser_action": {
"default_title": "Set this page's color.",
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["core.js"]
}
],
"background": {
"scripts": ["background.js"]
},
"manifest_version": 2
}
core.js:
chrome.tabs.executeScript(null,{code:'document.body.style.backgroundColor = "green";'});
无效解决方案 background.js:
chrome.webNavigation.onHistoryStateUpdated.addListener(function(details) {
chrome.tabs.executeScript(null,{file:"core.js"});
});
问题出在哪里?请求帮助。
答案 0 :(得分:1)
更好的解决方案,只需使用内容脚本并等到加载而不执行脚本:
的manifest.json
{
"name": "Test Extension",
"description": "Testing",
"version": "1.0",
"permissions": [
"tabs", "webNavigation"
],
"browser_action": {
"default_title": "Set this page's color.",
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["core.js"],
"run_at": "document_end"
}
],
"manifest_version": 2
}
core.js
window.onload=function(){
console.log("test!!");
document.body.style.backgroundColor = "green"; }
popup.html无论在这里。 我只是尝试它,它的工作是将任何站点中的背景颜色更改为绿色(您可以尝试使用stackoverflow)和控制台。