返回值background.js到content.js

时间:2018-09-10 00:23:43

标签: javascript jquery json google-chrome-extension

Helo,这个用于chrome扩展程序的JavaScript, 如何从background.js到内容js获得价值。

    {
  "manifest_version":2,
  "permissions": [
  "storage",
  "activeTab",
  "contextMenus" 
  ],
  "content_scripts": [
    {
      "matches": ["*://*/*"],
      "js": ["jquery.js","content.js"],
      "css": ["style.css"]
    }...
  "background": {
      "persistent": false,
      "scripts": ["background.js"]
  }
}

那是我的json文件,这是我的问题,这是我的background.js

chrome.contextMenus.removeAll(function() {
  chrome.contextMenus.create({
    id: "right_down",
      title: "Grab-Image to Content Creator",
      contexts: ["image"],
      onclick: cow
      });
});

var cow = chrome.contextMenus.onClicked.addListener(function(info,tab) {
    // return
     cow =  info['srcUrl'];// i want Displays "url image" and proces it to content.js.
     console.log(url);
});

这是针对content.js的

chrome.runtime.getBackgroundPage(function (backgroundPage) {
    console.log(backgroundPage.cow); //get value url image
});

我运行了它但什么也没得到,如何将表单背景返回到其他文件?

1 个答案:

答案 0 :(得分:0)

在您的background.js中,您可以像下面这样使用public synchronized static void assertResult(String actual, String expected) { assertTrue(actual.contains(expected), "FAILED : Actual : " + actual + " Expected : " + expected, "PASSED : Actual : " + actual + " Expected : " + expected); }

chrome.tabs.sendMessage

它将对象数据(包含您的URL)发送到给定的选项卡(由tab.id指定)。您可以循环发送到所有标签。

在内容脚本中,您可以通过以下方式从后台接收数据:

chrome.contextMenus.onClicked.addListener((info, tab) => {
  chrome.tabs.sendMessage(tab.id, {
    url: info['srcUrl'],
  });
});