我无法弄清楚如何让它发挥作用。我的脚本独立工作。但不适用于background.js。我希望我的谷歌扩展程序只有在用户点击它的图标时才能工作,所以我创建了文件background.js并推出了代码:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {file: "change_content.js"});
});
我的manifest.json在这里:
{
"manifest_version": 2,
"name": "Name",
"description": "change content.",
"version": "3.0",
"browser_action": {
"default_icon": "icon.png"
},
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["change_content.js"]
}
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"permissions": [
"tabs", "http://*/*"
]
}
这是change_content.js:
var oldSource = document.documentElement.innerHTML;
document.body.innerHTML = changeContent(oldSource);
function changeContent(source){
.....
}
答案 0 :(得分:3)
在按下按钮之前遇到change_content.js
正在执行的问题的原因是因为这就是内容脚本的工作原理。如果在manifest.json
中包含内容脚本,它将加载并执行该脚本。尝试从清单中删除"content_scripts"
部分,您应该看到它应该正常工作。
答案 1 :(得分:-2)
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {file: "change_content.js"});
});
我感觉错误在于你使用“null”,因为它可能正在搜索tabId - null的标签,你应该尝试这样做吗?
chrome.tabs.executeScript({file: "change_content.js"});