谷歌chrome扩展浏览器操作.已选中

google chrome extension browserAction.onClicked

本文关键字:操作 浏览器 chrome 扩展 谷歌      更新时间:2023-09-26

我不知道如何让它工作。我的剧本是自己写的。但不适用于background.js。我希望我的谷歌扩展只有在用户点击它的图标时才能工作,所以我创建了文件background.jss,并输入了代码:

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(null, {file: "change_content.js"});
});

我的宣言.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){
.....
}

在按下按钮之前执行change_content.js时出现问题的原因是内容脚本就是这样工作的。如果您在manifest.json中包含一个内容脚本,它将加载并执行该脚本。尝试从清单中删除"content_scripts"部分,您应该会看到它正常工作。

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(null, {file: "change_content.js"});
});

我有一种感觉,错误在于你使用"null",因为它可能是在搜索tabId为null的选项卡,你应该尝试这样做吗?

chrome.tabs.executeScript({file: "change_content.js"});