首页 > 解决方案 > 从 devtools(自定义选项卡)到内容脚本的消息?

问题描述

如何从 devtools(自定义选项卡)向内容脚本发送消息?

我尝试了什么:

我在这里上传了我的代码:https ://github.com/TyGu1/tryGetResponseBody 。

编码:

开发工具.html

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

开发工具.js

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

面板.html

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

我想从这里(Panel.js)向inject.js 发送一条消息。根据Panel.js上的这篇文章https://medium.com/better-programming/chrome-extension-intercepting-and-reading-the-body-of-http-requests-dd9ebdf2348b ,我可以使用如下所示的东西:

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)})

我看这里:

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

标签: google-chrome-extensiongoogle-chrome-devtools

解决方案


您可以直接向 发送消息background.js,然后从发送消息background.js -> devtools.js。这是一个类似的机制content script,你需要通过tab id


推荐阅读