chrome扩展中的后台脚本和内容脚本之间的区别

sac*_*024 23 google-chrome google-chrome-extension content-script

正如问题所说,我只想知道chrome扩展中后台脚本和内容脚本之间区别.当我在两个脚本中记录chrome对象时,我发现了不同的对象.

用例

我想在点击图标时将我的javascript注入页面所以在manifest.json我添加内容脚本但我无法在内容脚本中收听图标点击事件.

chrome.browserAction未在内容脚本中的chrome对象中定义.

如何在内容脚本中侦听单击事件.我们可以同时包含背景和内容脚本吗?

这是我的manifest.json

{
  "name": "First Plugin Testing",    
  "version": "1.0",
  "manifest_version": 2,    
  "description": "Trying hands on first extension",
  "background": { "scripts": ["background.js"] },
  "browser_action": {
    "default_icon": "icon.png"
  },
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ],
  "content_scripts": [
    {
      "matches": ["http://*/*"], 
      "js": ["temp.js"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

sac*_*024 17

我找到了问题的答案.

答:我们可以同时包含内容脚本和后台脚本吗?

是的,我们可以在清单中包含后台脚本和内容脚本.要在它们之间进行互动,您可以使用Chrome Message Passing API.

我也是这样做的,但背景脚本中有一些错误我无法看到因此我在google上搜索后发布了这个问题.

B.如何在内容脚本中收听点击事件?

解决方案:我们不能拥有browser click event内容脚本.它只能部分访问chrome对象所以你必须在后台脚本中接收click处理程序并将消息发送到内容脚本并做任何你想做的事情.

chrome.browserAction.onClicked在后台脚本中使用事件,然后使用消息传递将信息发送到用户单击图标的内容脚本.

  • 内容和后台脚本之间的区别如何? (6认同)