文档章节

Chrome插件开发

brivio
 brivio
发布于 2014/03/22 11:07
字数 226
阅读 2723
收藏 11

Chrome的消息传递,可以在Web(通过content script)和扩展之间进行,任意一方都可发送或接收消息。Web(通过content script)发送消息如下:

chrome.runtime.sendMessage({greeting: "hello"}, function(response) {  
  console.log(response.farewell);  
});

通过chrome.runtime.sendMessage函数发送消息,其中{greeting: "hello"}是消息对象(大括号的用法见参考资料[2]);function(response) {...}是回调函数,处理接收方发回的消息。

插件发送消息需要确定接收的Tab,如下:

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

以上代码指定当前tab为消息的接收者。

接受端需要通过runtime.onMessage事件处理消息:

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: "goodbye"});  
  });

事件处理通过function(request, sender, sendResponse){...}完成,以上代码处理消息时在控制台记录发送者的消息,回复“goodbye”消息。


© 著作权归作者所有

brivio
粉丝 5
博文 34
码字总数 28018
作品 0
杭州
程序员
私信 提问
离线Chrome插件安装文件(crx)的安装方法

离线Chrome插件安装文件(crx)的安装方法 一、正常安装方法 1.开发谷歌浏览器,设置->扩展程序 在打开的谷歌浏览器的扩展管理器中用户可以看到一些已经安装程序的Chrome插件,或者一个Chrom...

曾将
2018/07/10
0
0
将 Chrome 变成开发利器,开发者们在用这些插件

Chrome 浏览器具有强大的跨平台能力以及丰富的扩展插件,一直是许多开发者的首要选择。而利用许多 Chrome 插件,开发者们在开发流程中能够极大地提高开发效率。我们就整理了十款开发者常用的...

oschina
2016/07/01
13K
30
chrome浏览器jsonView插件安装

chrome 应用商店打不开,想装插件愁死人了。 今天想到一个好方法,以 jsonView插件为例分享一下。 1、打开 https://github.com ; 2、搜索 jsonView 链接:https://github.com/search?utf8=...

hengbao5
2018/08/03
17
0
【教程】CRX格式插件不能离线安装?本地扩展CRX无法安装怎么办?

最近有很多用户反映有一些Chrome插件在离线安装的时候,根据本站的教程:离线安装CRX格式chrome插件的方法。无法正常完成安装,提示“只能通过Chrome网上应用商店安装该程序”,小编为了了解...

CS青雀
02/21
0
0
开发google浏览器chrome的JS插件

这篇文章,实际上是回答我的上篇博文之《WEB攻击技巧之网页脚本攻击》所留下的问题,见网址:http://my.oschina.net/hetiangui/blog/135462 本篇博文测试网址,就是上篇博文中的网址: http...

BLUE-魏晓峰
2013/06/05
22.3K
6

没有更多内容

加载失败,请刷新页面

加载更多

ES5

什么是ES5:比普通js运行要求更加严格的模式 为什么:js语言本身有很多广受诟病的缺陷 如何:在当前作用域的顶部添加:"use strict" 要求: 1、禁止给未声明的变量赋值 2、静默失败升级为错误...

wytao1995
40分钟前
2
0
c++ 内联函数调用快的原因

见图片分析

天王盖地虎626
今天
4
0
微服务之间调用控制器注解类型的差异

今天在一个业务服务通过Feign调用文件服务上传文件时遇到了几个问题: 1. 提示http请求头过大的问题; 此时需要修改bootstrap.yml,加入 server: max-http-header-size: 10000000 用以放大...

不再熬夜
今天
7
0
用 4G 工作是什么体验

七月开始,因为工作原因,在公司附近租了个住处,方便工作。离公司近了,感觉就是不一样,之前每天 5:30 就要起床赶地铁,现在可以睡到自然醒,一看才 7 点,悠闲的起床洗漱,踱步到公司,都...

zzxworld
今天
7
0
sonar报错volatile

问题发生 原先代码如下: //认证授权码private static volatile String AUTHORIZATION_CODE = "init"; git push 之后,sonar认为这是个bug检测报告截图如下: 分析排查 解释说明: Markin...

开源小菜鸟2333
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部