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 ...
随机推荐
- NO6——KMP
int next[N]; char str1[M],str2[N]; //str1 长,str2 短 //len1,len2,对应str1,str2的长 void get_next(int len2) ...
- java获得采集网页内容的方法小结
为了写一个java的采集程序,从网上学习到3种方法可以获取单个网页内容的方法,主要是运用到是java IO流方面的知识,对其不熟悉,因此写个小结. import java.io.Buffe ...
- CentOS 7 samba 配置
1.安装samba sudo yum install samba 2.环境配置 a.关闭防火墙 sudo systemctl stop firewalld.service #停止firewallsud ...
- 通过NTP(Network Time Protocal)协议进行时间同步
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwUAAAKOCAYAAAD3ZbXWAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw
- ArcGis下的叠加分析
1矢量与矢量叠加的话就用ToolBox里有Overlay: 2如果是矢量和栅格叠加的话用Spatial analysis模块中的 zonal statistics: 3还有就是栅格与栅格的叠加S ...
- 【python】 json.dumps() json.dump()的区别
以前写的很简单,只有几句话,最近发现本文是本博客阅读量最大的一篇文章,觉得这样有种把人骗进来的感觉,于是又细化了一些.如果还有不好的地方,欢迎指出. 首先说明基本功能: dumps是将dict转化成s ...
- 更换Sublime Text主题字体
Sublime Text作为脚本程序开发工具是一个不错的选择,支持多种语言,支持代码高亮显示,必要时还有代码提示功能.但是有的主题字体实在是难看,不过Sublime Text中也是可以更改的,只是更改 ...
- poj3347 Kadj Squares (计算几何)
D - Kadj Squares Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Su ...
- 【NOIP模拟赛】公主的朋友 区间染色问题
这道题大家都用的分块,然而我发现这是一个经典算法:区间染色问题. 我们区间染色时把区间分成若干连续的颜色段,然后我们每次染色删除原来的颜色段插入新的颜色段. 我们发现我们的时间复杂度直接与我们要染色区 ...
- Cube 找规律
这道题我们经过简单的推测便可得知3个之前特判,四个之后就成为了一般状况,就是我们每侧都是走整个整个的|_|之后零的走|||. 考试的时候包括平时做题,许多正确的感性比理性证明要强得多. #includ ...