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 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!

相关文章
|
5天前
|
Web App开发 JavaScript 前端开发
使用vue快速开发一个带弹窗的Chrome插件
使用vue快速开发一个带弹窗的Chrome插件
81 0
使用vue快速开发一个带弹窗的Chrome插件
|
5天前
|
Web App开发 JavaScript 前端开发
从零开始,轻松打造个人化Chrome浏览器插件
从零开始,轻松打造个人化Chrome浏览器插件
83 0
|
6月前
|
Web App开发 存储 前端开发
一键同步,无处不在的书签体验:探索多电脑Chrome书签同步插件
一键同步,无处不在的书签体验:探索多电脑Chrome书签同步插件
132 0
|
6月前
|
Web App开发 存储 缓存
(新)Chrome浏览器自定义背景插件
(新)Chrome浏览器自定义背景插件
118 0
|
7月前
|
Web App开发 JSON 编解码
【其他】Chrome 灵魂插件!爱了爱了!提高工作效率的神器!
【其他】Chrome 灵魂插件!爱了爱了!提高工作效率的神器!
89 0
【其他】Chrome 灵魂插件!爱了爱了!提高工作效率的神器!
|
8月前
|
Web App开发 开发者
Mac Chrome crx(插件) 文件导出与导入
Mac Chrome crx(插件) 文件导出与导入
255 0
|
5天前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
165 0
|
5天前
|
Web App开发 前端开发 JavaScript
折腾Chrome插件,简单地让文本上色~
折腾Chrome插件,简单地让文本上色~
7 0
|
5天前
|
Web App开发 存储 API
折腾Chrome插件,让内容脚本与文本交互~
折腾Chrome插件,让内容脚本与文本交互~
9 0
|
5天前
|
Web App开发
折腾Chrome 插件,怎么给右键菜单增加“选项”?
折腾Chrome 插件,怎么给右键菜单增加“选项”?
11 0

热门文章

最新文章