01. Chrome扩展简单认识
认识Chrome扩展及应用
Chrome扩展 是用于扩充 Chrome浏览器功能的程序,Chrome应用 是以Chrome为平台运行的程序,两者似乎并没有太明确的区别,甚至有些程序既可以设计成Chrome扩展也可以设计成Chrome应用。
但既然Google将基于Chrome平台的程序分为了两类,说明两者还是有区别的。
Chrome扩展主要用于对浏览器功能的增强,它更强调与浏览器相结合。
比如Chrome扩展可以在浏览器的工具栏和地址栏中显示图标,它可以更改用户当前浏览的网页中的内容,也可以更改浏览器代理服务器的设置等等。Chrome应用更强调是独立的程序,你可以不打开Chrome浏览器而运行这些程序。同时这些程序可以调用更加底层的系统接口,比如串口、 USB、本地文件读写等等。
同时Chrome应用可以拥有样式更加自由的独立窗口,而Chrome扩展的界面只能限定在浏览器窗口中。
由于Chrome扩展和Chrome应用有很多相似之处,为了叙述方便本章会统一说成 Chrome扩展,但应该清楚同样适用于Chrome应用。
Chrome扩展是一系列文件的集合,这些文件包括HTML文件、CSS样式文件、JavaScript脚本文件、图片等静态文件以及 manifest.json。
个别扩展还会包含二进制文件,如DLL动态库和so动态库等,但这需要调用 NPAPI,而Google出于安全性考虑已经决定逐渐淘汰NPAPI,所以本书中向大家介绍有关NPAPI的内容。
扩展被安装后,Chrome就会读取扩展中的 manifest.json文件。这个文件的文件名固定为 manifest.json,内容是按照一定格式描述的扩展相关信息,如扩展名称、版本、更新地址、请求的权限、扩展的UI界面入口等等。
由于Chrome扩展是基于Chrome平台的,说得直白些,是基于WebKit浏览器的 -- 当然有些更加高级的接口不仅仅依赖于WebKit浏览器 -- 所以Chrome扩展在处理逻辑运算和实现程序功能时所采用的编程语言必然只能是JavaScript。
可能你会感到惊讶,毕竟JavaScript最开始是为提升网站与用户交互体验而设计出的一种轻量级脚本语言,怎么会脱离网站而成为一种程序的逻辑语言呢?
随着Chrome浏览器V8引擎的出现,JavaScript的执行效率得到了大幅提升,甚至出现了将其作为后端语言的项目 -- Node.js。
所以将JavaScript作为一种客户端程序语言就更是绰绰有余了-- 只要提供更加丰富的功能函数 -- 而Chrome平台正提供了这样的环境。
总的来说,Chrome扩展更像是一个运行于本地的网站,只是它可以利用Chrome平台提供的丰富的接口,获得更加全面的信息,进行更加复杂的操作。而它的界面则使用HTML和CSS进行描述,这样的好处是可以用很短的时间构建出赏心悦目的UI。界面的渲染完全不需要开发者操心,而是交给Chrome去做。
Chrome扩展的 启动入口 可以在 浏览器的 工具栏 和 地址栏 中,用户单击后激活扩展进行下一步的操作,也可以干脆没有图标,在后台静默地运行。
比如微博的扩展,可以设计成将图标显示在工具栏中,用户点击后打开一个显示用户微博时间轴的界面;RSS订阅器扩展可以设计成将图标显示在地址栏中,当用户点击后,订阅地址栏中当前显示的URL;自动使用Google SSL链接的扩展可以不显示图标,只是在后台默默地监视,当用户访问了非SSL的Google链接后,自动跳转到SSL链接即可。
Chrome扩展图标在浏览器中的位置
注意:Chrome不允许将js代码段直接内嵌入HTML文档,所以需要引用JS文件。当然inline-script也是被禁止的,所以所有元素的事件都需要使用JavaScript代码进行绑定.
manifest.json
它是整个扩展的入口,也是Chrome扩展必不可少的部分。
Google的官方文档中对于扩展和应用给出了两个不同的Manifest介绍界面,这是因为有些属性只能由扩展使用,而有些属性只能由应用使用。
Chrome扩展的Manifest必须包含name、version 和 manifest_version属性,目前来说 manifest_version属性值只能为数字2,对于应用来说,还必须包含app属性。
其他常用的可选属性:02. manifest.json
2017年7月17日 22:37:56
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2018年人工智能可以在哪些领域最快得到应用和普及?
根据腾讯互娱发布的《2017 Q3 AI 行业全景热度观察》,2017年第三季度,全球AI公司融资总额高达 77.42 亿美元,仅比前两个季度之和低10亿美元,而与2012年同期相比则增长了70余倍。 虽然第四季度还没结束,但10月底旷视科技4.6亿美元的C轮融资额已经刷新了此前由商汤科技所保持的4.1 亿美元的融资记录,也成为全球人工智能企业迄今为止所获得的最大一笔融资。不难看出,火遍整个2017年的人工智能,到了年末依旧是势头不减,甚至很可能再次打破之前的各项融资记录。 回顾过去,从1956年的达特茅斯会议到今天,人工智能已经走过了60多年的历史。在这60多年中,人工智能经历过高峰,也曾跌落到低谷,但从来没有哪一次像今天这样,成为街头巷尾无人不谈的话题。虽然这一定程度上得益于移动互联网时代信息传播效率的飞速提升使得热点话题的影响力得以成千上万倍的扩大。但另一个更重要的原因是,这一次的人工智能复兴与以往的最大区别在于,它让人们真正看到了 AI 技术改变人类未来生活方式的可能性。 用李开复的话说:“今天的人工智能是‘有用’的人工智能……这一次人工智能复兴的最大特点,就是 AI 在多个相...
- 下一篇
怎么玩转Java线程池?
一:简介 线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。 二:线程池 线程池的作用: 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。 为什么要用线程池: 1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。 2.可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境