Chrome扩展程序:内容脚本可在所有页面上运行,另一个仅在一个页面上运行

Mal*_*ala 8 google-chrome google-chrome-extension

我正在撰写需要执行以下操作的Chrome扩展程序:

  • 弹出窗口时,将内容脚本注入当前(任意)页面
  • 始终将不同的内容脚本注入特定域的所有页面

到目前为止,我有第一个实现,通过调用chrome.tabs.executeScript()popup.html的文件,并具有在清单如下,以允许脚本到任何页面上运行:

"permissions": [
  "tabs", "http://*/*"
],
Run Code Online (Sandbox Code Playgroud)

现在,根据http://code.google.com/chrome/extensions/content_scripts.html,如果我希望内容脚本始终在特定页面上运行,我必须在清单中声明它并设置权限以仅包含页面代码应该运行.但是,这将打破第一部分.

我该如何解决这个问题?我能想到的唯一的办法就是始终调用某种"来电显示"脚本,然后做自己的检查和其他脚本的加载,但只是似乎很凌乱,我假设有是一个更好的办法.

ser*_*erg 14

{
  "content_scripts": [
    {
      "matches": ["http://www.google.com/*"],
      "js": ["myscript.js"]
    }
  ],
  "permissions": [
     "tabs", "http://*/*"
  ]
}
Run Code Online (Sandbox Code Playgroud)

myscript.js是自动注入google.com,你仍然可以手动注入http://*/*.

  • @Mala您需要向后台页面发送请求,在后台读取localStorage,然后将结果传递回去。请参阅http://code.google.com/chrome/extensions/dev/messaging.html (2认同)