Chrome扩展及应用开发
Chrome扩展及应用开发(电子书)
http://www.ituring.com.cn/minibook/950
文档
官方
https://developer.chrome.com/extensions/contentSecurityPolicy
百度翻译
https://chajian.baidu.com/developer/apps/contentSecurityPolicy.html
https://chajian.baidu.com/developer/extensions/getstarted.html
内容脚本
能获取页面的DOM,监听事件
不能获得页面的js对象变量等
可以使用应用的资源,监听runtime发来的信息
一些行为收到限制:可以用的,注意接发消息的两个
- extension(getURL、inIncognitoContext、lastError)
- runtime(connect、getManifest、getURL、id、onConnect、onMessage、sendMessage)
- storage
内容脚本是可以选择性插入的,在manifest.json permission 里面用 正则表示
"all_frames":true, 可以插入页面的每个iframe
其他页面之间,发消息,也是通过runtime,但想页面发消息,必须通过 tabs
后台页面/事件页面
可以通过调用 runtime.getBackgroundPage 获得。
事件页面可能会被关闭,收到消息时再激活:
定期任务请使用 alarms api,
装载事件 runtime.onInstalled
卸载事件 runtime.onSuspend
消息传递
https://chajian.baidu.com/developer/extensions/messaging.html
chrome.runtime.sendMessage
单个消息。如果向您自己的应用发送消息,每个网页中都会产生 runtime.onMessage 事件;如果发送至另一个应用则产生 runtime.onMessageExternal 事件。注意,应用不能使用该方法向内容脚本发送消息。要向内容脚本发送消息,请使用 tabs.sendMessage。
chrome.tabs.sendRequest 和 chrome.extension.sendRequest 均被废弃,
只使用 chrome.runtime.sendMessage 和 chrome.tabs.sendMessage
| alarms | 使用 chrome.alarms API 安排代码周期性地运行或者在将来的指定时间运行。 |
| browserAction | 使用浏览器按钮可以在百度浏览器主窗口地址栏右侧的工具栏中添加图标。除了图标,浏览器按钮还可以有工具提示、徽章和弹出内容。 |
| commands | 使用命令 API 添加快捷键,以便触发应用中的操作,例如打开浏览器按钮或向应用发送命令。 |
| contextMenus | 使用 chrome.contextMenus API 向百度浏览器的右键菜单添加项目。您可以选择您在右键菜单中添加的项目应用于哪些类型的对象,例如图片、超链接和页面。 |
| cookies | 使用 chrome.cookies API 查询和修改 Cookie,并在 Cookie 更改时得到通知。 |
| extension | chrome.extension API 包含任何应用页面都能使用的实用方法。它包括在应用和内容脚本之间或者两个应用之间交换消息的支持,消息传递中详细描述了这些内容。 |
| i18n | 使用 chrome.i18n 架构为您的整个应用或应用实现国际化支持。 |
| idle | 使用 chrome.idle API 检测计算机空闲状态的更改。 |
| management | chrome.management API 可以用来管理已经安装并且正在运行的应用或应用。 |
| notifications | 使用 chrome.notifications API 通过模板创建丰富通知,并在系统托盘中向用户显示这些通知。 |
| pageAction | 使用 chrome.pageAction API 在地址栏中添加图标。页面按钮代表用于当前网页的操作,但是不适用于所有网页。 |
| pageCapture | 使用 chrome.pageCapture API 将标签页保存为 MHTML。 |
| permissions | 使用 chrome.permissions API 在运行时而不是安装时请求声明的可选权限,这样用户可以理解为什么需要这些权限,并且仅在必要时授予这些权限。 |
| power | 使用 chrome.power API 修改系统的电源管理特性。 |
| proxy | 使用 chrome.proxy API 管理百度浏览器的代理服务器设置。该模块依赖于类型 API 中的 ChromeSetting 原型,用于获取和设置代理服务器配置。 |
| runtime | 使用 chrome.runtime API 获取后台网页、返回清单文件详情、监听并响应应用或应用生命周期内的事件,您还可以使用该 API 将相对路径的 URL 转换为完全限定的 URL。 |
| storage | 使用 chrome.storage API 存储、获取用户数据,追踪用户数据的更改。 |
| system.cpu | 使用 chrome.system.cpu API 查询 CPU 元数据。 |
| system.memory | 使用 chrome.system.memory API 获取内存信息。 |
| system.storage | 使用 chrome.system.storage API 查询存储设备信息,并在连接或移除可移动存储设备时得到通知。 |
| system.display | 使用 chrome.system.display API 查询显示器的元数据。 |
| tabs | 使用 chrome.tabs API 与浏览器标签页交互。您可以使用该 API 创建、修改或重新排列浏览器中的标签页。 |
| tts | 使用 chrome.tts API 播放合成的文字语音转换(TTS),同时请您参见相关的 ttsEngine API,允许应用实现语音引擎。 |
| ttsEngine | 使用 chrome.ttsEngine API 在应用中实现文字语音转换(TTS)引擎。如果您的应用注册了该 API,当任何应用或百度浏览器应用使用 tts 模块朗读时,它会收到事件,包含要朗读的内容以及其他参数。您的应用可以使用任何可用的网络技术合成并输出语音,并向调用方发送事件报告状态。 |
| webNavigation | 使用 chrome.webNavigation API 实时地接收有关导航请求状态的通知。 |
| webRequest | 使用 chrome.webRequest API 监控与分析流量,还可以实时地拦截、阻止或修改请求。 |
| windows | 使用 chrome.windows API 与浏览器窗口交互。您可以使用该模块创建、修改和重新排列浏览器中的窗口。 |
| bidu | 使用 chrome.bidu API 进行扩充自定义接口信息。如果当前的接口不能完整的满足您的需求,您可以向我们提出专门的功能接口申请。 |
Chrome扩展及应用开发的更多相关文章
- 手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单
手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩 ...
- 【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序
关于 chrome 扩展的文章,很久之前也写过一篇.清除页面广告?身为前端,自己做一款简易的chrome扩展吧. 本篇文章重在分享一些制作扩展的过程中比较重要的知识及难点. 什么是 chrome 扩展 ...
- ----转载----【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序
关于 chrome 扩展的文章,很久之前也写过一篇.清除页面广告?身为前端,自己做一款简易的chrome扩展吧. 本篇文章重在分享一些制作扩展的过程中比较重要的知识及难点. 什么是 chrome 扩展 ...
- chrome扩展(浏览器插件)开发实用教程
原创文章,转载请注明出处. 作者:简体字丶冯; QQ:564372931 1.Chrome能搞这些事情 (1) 操作浏览器中打开的页面DOM 这能做什么哪?譬如说你想修改页面DOM(DOM是什 ...
- Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式
目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...
- 基于 webpack 的 chrome 扩展开发探索
起 最近利用闲暇时间在进行一款 chrome 扩展 V2EX-HELPER 的开发(如果巧遇 V 友欢迎试用),今天把它彻底改成了用 webpack 打包依赖的模式,不由得感概 webpack 的强大 ...
- 手把手教你开发chrome扩展
转载:http://www.cnblogs.com/walkingp/archive/2011/04/04/2003875.html 手把手教你开发chrome扩展一:开发Chrome Extenst ...
- 手把手教你Chrome扩展开发:本地存储篇
手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...
- 手把手教你开发Chrome扩展三:关于本地存储数据
手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...
随机推荐
- ubuntu中执行truffle build出现问题
进行build之前,采用默认构建器方式创建客户端,先安装默认构建器: npm install truffle-default-builder --save 然后需要修改truffle.js配置文件如下 ...
- BZOJ4475 JSOI2015子集选取(动态规划)
数据范围过大说明这个题和组合一点关系也没有,答案基本上肯定是ab的形式了.暴力打表感觉不太好写,找到当年的题面发现还有个样例是6 40 401898087,于是暴力找ab=401898087的数,发现 ...
- BZOJ3243 [Noi2013]向量内积 【乱搞】
题目链接 BZOJ3243 题解 模数只有\(2\)或\(3\),可以大力讨论 如果模数为\(2\),乘积结果只有\(1\)或\(0\) 如果一个向量和前面所有向量乘积都为\(1\),那么其和前面向量 ...
- git使用笔记(一)入门
By francis_hao Nov 17,2016 本来是想把git的使用笔记写在一个文件里,但是越写越长,最后也不得不分开了.这样也好,每一篇一个侧重,可以写的详细一点. 初学乍练 在l ...
- “CNKI 中国知网 PDF 全文下载”油猴脚本在线安装地址
https://greasyfork.org/zh-CN/scripts/18841-cnki-%E4%B8%AD%E5%9B%BD%E7%9F%A5%E7%BD%91-pdf-%E5%85%A8%E ...
- Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) D
D. Little Artem and Dance time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- HDU1213:How Many Tables(并查集)
How Many Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- oracle的sequece的使用(主键自增长)
在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方. 1.Create Sequence (注释:你需要有CREATE S ...
- 生产服务器环境最小化安装后Centos 6.5优化配置备忘
生产服务器环境最小化安装后 Centos 6.5优化配置备忘 本文 centos 6.5 优化 的项有18处,列表如下: 1.centos6.5最小化安装后启动网卡 2.ifconfig查询IP进行S ...
- mysql__索引的设计和使用
索引的设计和使用 1 索引概述 MySIAM和InnoDB存储引擎的表默认创建的都是BTREE索引,MySQL目前不支持函数索引,但是支持前缀索引.还支持全文本索引,但是只有MySIAM(5.0开始) ...