javascript - Chrome 扩展共享脚本变量

标签 javascript html google-chrome-extension google-chrome-devtools manifest.json

我正在开发一个包含 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);
}

关于javascript - Chrome 扩展共享脚本变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49336479/

相关文章:

javascript - 从一页移动到另一页

javascript - 如何推断 JavaScript 中日期对象的一天?

javascript - CSS - 是否可以使用纯 CSS 卡住 html 表格顶部的标题以防止滚动?

javascript - 移动浏览器上更大的复选框

javascript - 使用 Chrome 扩展中的 prompt() 函数来询问密码是否安全?

javascript - uglifyjs 抛出带有冒号的 punc()

javascript - 在 mirth 上用 javascript 迭代并从 xml 中提取数据

javascript - Angular 6 中的数据未通过路由传递

javascript - CSS 或 jQuery 可以覆盖注入(inject)的 onkeyup 属性吗?

javascript - Chrome 不会加载 jquery 或 soundcloud api