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 ...
随机推荐
- argos3-simulator
如何修改控制器: CVector2: class CVector2 { friend class CRotationMatrix2; friend class CTransformationMatri ...
- Visual Studio 2015安装包
点击下载
- MySQL 初识01
最近开始学习MySQL 所以将这两天所学习到的知识简单小结一下 1.status 显示数据库信息 2.数据类型: a.字符串: char(m):固定长度的字符,最多255个字符: varchar(m) ...
- CodeForces Round #521 (Div.3) D. Cutting Out
http://codeforces.com/contest/1077/problem/D You are given an array ss consisting of nn integers. Yo ...
- 【SSH】——spring的控制反转和依赖注入
spring是一个轻量级的容器框架,主要是为了使企业的开发变得简单.高效.无论是从大小还是开销来讲,他都可以算是轻量级的,也是非侵入性的. 下图是spring的框架示意图,说到spring,就不得不提 ...
- Intellij Idea 创建Web项目入门
相关软件: Intellij Idea14:http://pan.baidu.com/s/1nu16VyD JDK7:http://pan.baidu.com/s/1dEstJ5f Tomcat(ap ...
- vue2.0 vue-cli项目中路由之间的参数传递
1.首先配置路由, import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) export default new R ...
- [C/C++] extern关键字详解以及与static、const区别
extern用法详解: 1. 声明外部实体 声明外部全局变量或对象,一般用于头文件中,表示在其它编译单元内定义的变量,链接时进行外部链接,如: extern int ivalue; 此时的extern ...
- input只改变光标的颜色 不改变字的颜色
color: red; text-shadow: 0px 0px 0px #000; -webkit-text-fill-color: transparent;把这些放到input里文字通过阴影实现 ...
- ElasticSearch1.7.1拼音插件elasticsearch-analysis-pinyin-1.3.3使用介绍
ElasticSearch拼音插件elasticsearch-analysis-pinyin使用介绍 https://my.oschina.net/xiaohui249/blog/214505 摘要: ...