1

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

当我在我的页面脚本中声明 avar时,我尝试在我的附加脚本中调用它并得到undeclared varible.

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

4

1 回答 1

1

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

下面是一个简单的例子:

清单.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"]
        }]
}

背景.js

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

内容.js

chrome.extension.onMessage.addListener(handleMessage);
function handleMessage(request) {
    console.log(request.data);
}
于 2018-03-17T14:37:54.827 回答