Chrome 扩展共享脚本变量

Chrome Extrensions Share Script variables

我正在开发一个有 2 个脚本文件的 chrome 扩展。一个附加到 manifest.json 作为 content_scripts(页面脚本)。我还有一个脚本文件附加到我的附加组件 popup.html 文件(附加脚本)。

当我在我的页面脚本中声明一个 var 然后我尝试在我的附加脚本中调用它并且我得到 undeclared varible.

我可以在两个脚本之间进行通信吗? 因为如果我尝试一次完成所有操作,那么它就无法访问对面页面的元素。

您可以使用 messaging 轻松地将值从后台传递到内容脚本。

下面是一个简单的例子:

manifest.json

{
  "name": "test",
  "version": "0.0.1",
  "manifest_version": 2,
  "description": "Test ",
  "background": {
    "scripts": [
      "background.js"
    ]
  },
  "browser_action": {
    "default_title": "Test "
  },
  "permissions": [
    "*://*/*",
    "tabs"
  ], "content_scripts" : [{
            "matches" :  ["*://*/*"],
            "js" : ["content.js"]
        }]
}

background.js

  chrome.browserAction.onClicked.addListener(function(){
       chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
            chrome.tabs.sendMessage(tabs[0].id, {data: "some value"});
        });
    });

content.js

chrome.extension.onMessage.addListener(handleMessage);
function handleMessage(request) {
    console.log(request.data);
}