chrome插件的通讯

简介: chrome插件的通讯

1.先在contentScript里面创建一个端口,并且发送一个消息

contentScript.js

  saveDetail() {
    var port = chrome.extension.connect({ name: "menu" });
    port.postMessage({ detail: { name: "hello!?~" } });

            //这里主要是为了接受回传的值
    port.onMessage.addListener((msg) => {
      if (msg.res) {
        console.log(msg.res);
      }
    });
  },
},

复制代码
2.然后在background.js里面接受,并且进行api访问,拿到结果再回传给contentScript

background.js
chrome.extension.onConnect.addListener(function (port) {
console.log(port);
if (port.name === "menu") {

port.onMessage.addListener(function (msg) {
  if (msg.detail) {
    axios.get("http://biaoblog.run:3000/blogData/mood").then((res) => {
      port.postMessage({ res });
    });
  }
});

}
});
复制代码
3.添加popup向contentScript发送消息的实例

popup.js
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {

chrome.tabs.sendMessage(tabs[0].id, { greeting: "hello" }, function (
  response
) {
  console.log(response.farewell);
});

});
复制代码
contentScript
chrome.runtime.onMessage.addListener(function (

request,
sender,
sendResponse

) {

console.log(
  sender.tab
    ? "from a content script:" + sender.tab.url
    : "from the extension"
);
if (request.greeting == "hello") {
  sendResponse({ farewell: "I'm contentscript,goodbye!" });
}

});

复制代码
最后记得在manifest.json中添加background配置:
"background": {

"scripts": ["lib/axios.js", "background.js"]

},
复制代码

参考文档:http://chrome.cenchy.com/messaging.html

https://blog.csdn.net/zhongping136/article/details/16869819?utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-1.control

作者: Bill 本文地址: http://biaoblog.cn/info?id=1622688540000

版权声明: 本文为原创文章,版权归 biaoblog 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!

相关文章
|
1月前
|
Web App开发 JSON JavaScript
vue学习:chrome 中 vuetools 开发插件 的下载、安装
这篇文章介绍了如何在Chrome浏览器中下载、安装并测试Vue.js开发插件——vue-devtools。
243 0
vue学习:chrome 中 vuetools 开发插件 的下载、安装
|
3月前
|
Web App开发 JSON 前端开发
30个Chrome 灵魂插件!
30个Chrome 灵魂插件!
|
3月前
|
Web App开发 前端开发 JavaScript
手摸手教你,从0到1开发一个Chrome浏览器插件
开发 Chrome 插件既有趣又具成就感。本教程将引导你从零开始,逐步创建一个简单的 Chrome 插件。首先了解 Chrome 插件是可增强浏览器功能的小程序。以一个基础示例开始,你将学习如何设置开发环境,包括安装 Chrome 和准备文本编辑器,并掌握 HTML、CSS 和 JavaScript 的基础知识。接着,我们将构建插件的基本结构,涉及 `manifest.json` 配置文件、`background.js` 后台脚本、`popup.html` 用户界面以及 `style.css` 样式表。
304 8
|
3月前
|
Web App开发
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
134 0
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
|
4月前
|
Web App开发 JavaScript 前端开发
Chrome插件实现问题之最新的 Chrome 浏览器架构有什么新的改变吗
Chrome插件实现问题之最新的 Chrome 浏览器架构有什么新的改变吗
|
4月前
|
JavaScript 前端开发 Web App开发
Chrome插件实现问题之单进程浏览器的不稳定主要体现在什么地方
Chrome插件实现问题之单进程浏览器的不稳定主要体现在什么地方
|
4月前
|
Web App开发 数据可视化 前端开发
Chrome插件实现问题之content-scripts能访问哪些Chrome API
Chrome插件实现问题之content-scripts能访问哪些Chrome API
|
4月前
|
Web App开发 前端开发 JavaScript
Chrome插件实现问题之用户在浏览器中输入URL后,浏览器进程会进行什么操作
Chrome插件实现问题之用户在浏览器中输入URL后,浏览器进程会进行什么操作
|
4月前
|
Web App开发 JavaScript 前端开发
Chrome插件实现问题之在Manifest V2中,设置插件的图标要如何解决
Chrome插件实现问题之在Manifest V2中,设置插件的图标要如何解决
|
4月前
|
缓存 安全 Web App开发
Chrome插件实现问题之网络进程接收到URL请求后会如何解决
Chrome插件实现问题之网络进程接收到URL请求后会如何解决