Сообщение от devtools (пользовательская вкладка) к скрипту содержимого? - PullRequest
0 голосов
/ 09 октября 2019

Как я могу отправить сообщение из devtools (настраиваемая вкладка) в скрипт содержимого?

Что я пытался:

Я загрузил свой код здесь: https://github.com/TyGu1/tryGetResponseBody.

Код:

devtools.html

<html>   
    <body>
        <script src="panel.js"></script>    yoyoyo
    </body>
</html>

devtools.js

chrome.devtools.panels.create("NewPanel",
  null,
  "panel.html",
  null
);

Panel.html

<html>
    <body>
        <script src="panel.js"></script>    yoyoyo
    </body>
</html>

Я хочу отправить сообщение отсюда (Panel.js) на inject.js. В соответствии с этой статьей https://medium.com/better-programming/chrome-extension-intercepting-and-reading-the-body-of-http-requests-dd9ebdf2348b на Panel.js я мог бы использовать sthg следующим образом:

Panel.js

        // i want to send a message  from here to inject.js
        chrome.runtime.sendMessage({
            response: "Hallo"
        });

injects.js ( сообщение отPanel.js не приходит сюда ).

alert(2); // this works
chrome.runtime.onMessage.addListener(function(response) {alert(Response)})

Я посмотрел здесь:

manifest.json

{
  "manifest_version": 2,
  "name": "Sivis Helper",
  "description": "Click on any element to scrape it via rvest / RSelenium",
  "homepage_url": "https://github.com/",
  "version": "0.1.1",
  "icons": {
    "64": "icons/default-64.png"
  },
  "background": {
    "scripts": ["background.js"]
  },
  "browser_action": {
    "default_icon": "icons/default-64.png",
    "default_title": "Click on any element to scrape it via rvest / RSelenium"
  },
  "content_scripts": [{ 
    "all_frames": true,
    "matches": ["<all_urls>"],  
    "js":["inspect.js"]
  }],
  "commands": {
    "toggle-xpath": {
      "suggested_key": { 
        "default": "Ctrl+Shift+U",
        "mac": "Command+Shift+U"
      },
      "description": "Toggle plugin"
    }
  },
  "options_ui": {
    "page": "options.html"
  },
  "permissions": ["debugger", "pageCapture", "tabs", "activeTab", "<all_urls>", "storage", "webRequest", "clipboardWrite", "clipboardRead", "webRequestBlocking"]
}

1 Ответ

1 голос
/ 11 октября 2019

Вы можете отправить сообщение напрямую на background.js, а затем с background.js -> devtools.js. Этот механизм похож на content script, вам нужно ответить tab id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...