Chrome扩展程序 - background.js如何创建在页面上保留的变量和函数?

时间:2017-05-01 20:00:14

标签: javascript jquery html google-chrome

我试图使用chrome扩展程序在网页上注入一些JS。由于我只想在点击时启用它,而不是每次访问页面时都启用它,我有以下清单:

{
  "name": "Assistant",
  "version": "0.1",
  "manifest_version": 2,
  "permissions": [
    "https://*/*",
    "http://*/*",
    "tabs"
  ],
  "background": {
    "scripts": [
      "js/background.js"
    ],
    "persistent": true
  },
  "content_scripts": [{
        "css": ["css/style.css"],
        "matches": ["http://*/*", "https://*/*"]
  }],
  "browser_action": {
    "default_icon": "icons/icon.png",
    "default_title": "Assistant"
  },
  "web_accessible_resources": ["css/style.css"]
}

在background.js中,我用这个加载脚本:

chrome.browserAction.onClicked.addListener(function(tab) {

    chrome.tabs.executeScript(null, { file: "js/jquery.min.js" }, function() {
            chrome.tabs.executeScript(null, { file: "js/script.js" });
    });

});

现在在script.js上我有以下一行:

var a = "testing";
window.b = "testing";
alert("testing");

当我点击按钮时,浏览器会立即显示"测试"的警报,这意味着它正确运行了代码。但是,当我进入控制台并尝试访问a或window.b时,两者都未定义。

这些变量是否以某种方式被沙箱化?如何使其可用于页面脚本?

0 个答案:

没有答案