вернуть значение background.js в content.js - PullRequest
0 голосов
/ 10 сентября 2018

Привет, этот javascript для расширения chrome, как получить значение 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 голосов
/ 10 сентября 2018

В вашем background.js вы можете использовать chrome.tabs.sendMessage, как показано ниже:

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

Он будет отправлять данные объекта (которые содержат ваш URL) на данную вкладку (указанную в tab.id). Вы можете отправить на все вкладки с циклом.

В скрипте контента вы можете получать данные из фона примерно так:

chrome.runtime.onMessage.addListener((request) => {
  let {
    data,
  } = request;
  console.log(data);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...