chrome 插件

扩展与浏览器间的通信,可以有两种形式:

1)短连接

发送消息:chrome.runtime.sendMessage

接收事件:chrome.runtime.onMessage.addListener

2)长连接

发送消息:var port = chrome.runtime.connect

port.postMessage

接收事件:port.onMessage.addListener

Native Message机制的通信方式,也有两种形式:

1)短连接

发送消息:chrome.runtime.sendNativeMessage

2)常连接

发送消息:var port = chrome.runtime.connectNative

port.postMessage

接收事件:port.onMessage.addListener

port.onDisconnect.addListener

--------------------------------------------这里是分割线----------------------------------------------------------
当插件的图标是否显示出来是取决于单个的页面时,应当选择page action;
当其它情况时可以选择browser action。

//connect to native host and get the communicatetion port
function connectToNativeHost(msg)
{
    var nativeHostName = "com.my_company.my_application";
    console.log(nativeHostName);
    port = chrome.runtime.connectNative(nativeHostName);
    port.onMessage.addListener(onNativeMessage);
    port.onDisconnect.addListener(onDisconnected);
    port.postMessage({message: msg});
 }

 function onDisconnected()
{
    console.log(chrome.runtime.lastError);
    console.log(‘disconnected from native app.‘);
    port = null;
}  

function onNativeMessage(message) {
    console.log(‘recieved message from native app: ‘ + JSON.stringify(message));
}
--------------------------------------------这里是分割线----------------------------------------------------------

6、插件通信:

  6.1 background.js 和 content_script.js 通信推荐使用 chrome.extension.sendRequest()、chrome.extension.onRequest.addListener(function(request, sender, sendRequest){}); 的形式。

  6.2 其他页面调用 background.js 里的函数和变量时推荐在其他页面使用 var backgroundObj = chrome.extension.getBackgroundPage(); if(backgroundObj){ backgroundObj.func(param); }的形式。

  6.3 如果插件运行中会有多个tab页同时打开和加载,则需要注意通信过程中使用 tab.id 参数,因为每个加载插件的tab页都会保留自己的一个 content_script.js 运行,所以和 content_script.js 通信时需要指定是向哪个tab页进行通信;获取当前打开的 tab 页的 id 可以使用 chrome.tabs.getSelected(function(tab){current_tab_id = tab.id;}); 的形式。

时间: 2024-11-05 12:25:32

chrome 插件的相关文章

这是一款借助chrome 插件的微信机器人

1.chrome kit微信机器人简介(github:https://github.com/LinuxForYQH/chrome_kit) 借助chrome 插件 js注入来实现消息的发送 chrome devtool api的调用来监听https请求 打开微信登录界面,在扫码登录前必须先打开toolbar(F12 或者 鼠标右键检查),如上所说因为借助了chrome devtool api所以需要打开toolbar才能执行相关dev域的js. 2.相关开发原理介绍 https://develo

试着开发chrome插件

我的第一个chrome插件,是app形式的 代码如下 创建一个文件: 1.manifest.json 1 { 2 "version": "1.0", 3 "manifest_version": 2, 4 "app":{ 5 "launch":{ 6 "web_url":"http://www.cnblogs.com/zzzzw" 7 }, 8 "urls&q

chrome插件 postman插件 接口测试、API & HTTP 请求调试工具

Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试. 它能够发送任何类型的HTTP requests (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers. 支持不同的认证机制(basic, digest, OAuth),接收到的响应语法高亮(HTML,JSON或XML). Postman 能够保留了历史的请求,这样我们就可以很容易地重新发送请求,有一个“集合”功能,用于存储所有请求相同的API/域. 这个扩展还有一些更

Android无线调试及手机设备与PC同屏工具——Chrome插件Vysor

我们平时用手机调试时,经常是手不离机,以前可以下载个jar包能把手机屏映射到电脑桌面,但是运行比较卡,后来就放弃了,再之,手机接数据线有时也不太方便 ,pc与手机(连wifi)如处同一网段,就可以通过无线来调试! 使用无线调式方法: 一:cmd开启命令窗口:(设置adbd 监听端口) adb  tcpip  5555 <设置adbd服务的端口> 二,cmd再开启另一个窗口:(开启adb网络调试模式) adb  connect  192.168.3.229:5555  <该地址为手机wif

chrome插件开发经验总结

(文章更新中...) chrome插件看似很简单,真正开发起来,还是有很多东西要花时间来理解的.一些关键地方不理解的话,身在坑中,会痛苦不堪. 扩展的进程跟网页的进程是相互独立的.嵌入在网页中的内容脚本跟网页中的脚本是相互独立,即互相不能调用各自的函数和变量.内容脚本可以看成一个孤立的存在.但是内容脚本可以操作网页的DOM,对网页的内容进行修改. background.js ,popup.html等在背景页中的文件属于父扩展,发送跨域请求需要在父扩展中进行(不能在contentscript.js

如何离线安装chrome插件

前言------可以不看: 实习做web,要弄单点登录SSO和验证Controller接口是否成功返回数据,要装两个chrome插件(Postman和JsonView),来发送Post请求测试单点登录(因为url只能是get请求). 以前做C++,写IOS,写Qt的娃,现在搞web真的有点虚,真是苦逼,一大堆货. google都不能访问了,google的应用商店也明显不能访问了.我又懒得找翻墙软件,真是懒......还是离线装装好了. (每次博客也一大堆错别字,别在意这些细节,最近右手手腕很疼,

Chrome插件i18n多语言实现

i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称.Chrome插件框架中i18n的封装API: chrome.i18n.getMessage(name) 用到的字符都可以定义成__MSG_extName__类似这样的格式,然后通过这个API来调用,例如: chrome.i18n.getMessage('extName') 在调用这个接口前还需要做一些准备工作: 1. 插件的目录结构定义, 蓝色高亮部分为多语言文件夹: m

zend studio结合xdebug、xdebug-help(chrome插件)调试PHP程序

zend studio结合xdebug.xdebug-help(chrome插件)调试PHP程序 一.原料: zend studio (我用的是11.0.2) xdebug(版本要与服务器的PHP环境一致) xdebug-helper(chrome插件,chrome插件扩展已封,可以到网上下载离线版,然后安装) 二.安装: 2.1.安装xdebug 1).找到与PHP环境对应的xdebug组件,然后放置到ext目录下 2).修改php.ini文件. 修改范例: 注意:具体的PHP环境.插件位置等

Chrome 插件: 起动本地应用 (Native messaging)

Chrome 插件: 起动本地应用 (Native messaging) www.MyException.Cn  网友分享于:2014-08-01  浏览:3次 Chrome 插件: 启动本地应用 (Native messaging) 最近碰到了一个新问题,需要利用Chrome 的插件, 从我们的一个网站中启动一个我们的本地C#应用,同时给这个应用传值来进行不同的操作. 在这里记录下解决的过程,以便以后查找 首先我们需要新建一个google的插件 这个插件包含了三个文件 manifest.jso

动手做第一个Chrome插件

Chrome插件是令人惊讶的简单,一旦你弄懂它的工作和实现原理.它是由一部分HTML,一部分Js,然后混合了一个叫做manifest.json的Json文件组合而成的整体.这意味着你可以使用你最擅长的js框架去实现它. 如果你还是一个Chrome插件的新手并且想尝试写一个的话,下面的文章将会带领大家并且尝试让大家理解Chrome插件的工作机制.这篇文章将会讲述每一块架构,以及相互之间的联系和插件的一般化形式. 架构 Chrome插件中的文件大体上可以分成2部分:Chrome插件中确确实实存在的文