`
青出于
  • 浏览: 12771 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Chrome Extension的manifest.json文件

阅读更多

近期看到隔壁组开发写了一个Chrome扩展来提升Agile Planning的效率,动了也想鼓捣鼓捣的心思。然后上网百度(确实有点low了)一些资料来研究Chrome扩展具体是个啥东西~

主要参考资料来自于图灵社区的开源电子书籍:《Chrome扩展及应用开发》。感谢作者Sneezry和图灵社区的工作。其他的资料建议直接参考Google的官方文档:https://developer.chrome.com/extensions/getstarted  当然Google的东西还是需要自备梯子的,不方便使用梯子的看上面那本书来入个门应该够了。

 

Chrome扩展以及应用简单来说就是一系列文件的集合,这些文件包括HTML,CSS,JavaScript,图片以及manifest.json等。都是使用前端的技术开发,对于前端熟悉的同学在搞清楚基本结构和API之后应该可以轻松搞定。对于我这样的初级菜鸟来说,可以借这个机会结合实践来学习前端的知识。

 

扩展和应用是很像的东西,两者有很多共享的属性定义。扩展只能运行在Chrome内部,需要先运行Chrome再运行扩展。应用则可以直接调用Blink内核来独立工作。

 

在组成扩展或应用的一系列文件中,manifest.json是一个必备且必须叫这个名字的文件。这个文件是Chrome读取扩展/应用的入口,浏览器根据此文件来进行扩展的渲染。文件内容是按照一定格式描述的扩展/应用的相关信息,如扩展名称、版本、更新地址、请求的权限、扩展的UI界面入口等等。从文件的“扩展名”就可以看出,文件使用的是json格式来保存的信息,关于json格式的语法请自行百度~(很简单的)。

 

manifest中的大部分属性对于扩展和应用来说是共用的,个别的只能适用于其中一种,不能同时出现在同一个manifest文件中。

Chrome扩展的manifest必须包含:name, version, manifest_version

Chrome应用的manifest必须包含:name, version, manifest_version, app

其中manifest_version属性的值现在只能是2

其他常用可选属性有:browser_action, page_action, background, permission, options_page, content_scripts.

 

至此其实可以开始写一个很简单extension练手(例子来自上面那本书)。

目标是完成一个扩展,点击之后可以显示当前的时间。

首先是manifest.json文件

 

{
	"manifest_version": 2,
	"name": "我的时钟",
	"version": "0.0.1.0",
	"description": "First Chrome Extension",
	"browser_action":{
		"default_title": "My Clcok",
		"default_popup": "popup.html"
	}
}

 在上面的文件中,我们可以看到name属性定义了扩展的名称。description属性我们可以自己写一些对扩展的描述。version属性则定义了改扩展现在的版本,它最多可以有三个.分隔的四段数字组成,每段数字不超过65535且不能以0开头,但是可以为0. 如果扩展后续进行更新的话,新版本号必须比旧版本号高,比较顺序则从左向右分段比较。以上三个信息都将在扩展安装之后显示在Chrome的extension management页面。

 

 

browser_action属性指定扩展在浏览器中的行为。default_title为鼠标悬停在扩展图标上时显示的文字信息,default_popup是一个html文件地址,是指定扩展被点击后所显示的页面文件位置。

 

在看懂manifest中各个都是干嘛的之后,自然就该开始写那个popup.html

 

<html>
<head>
<style type="text/css">
* {
	margin: 0;
	padding: 0;
}

body {
	width: 200px;
	height: 100px;
}

div {
	line-height: 100px;
	font-size: 42px;
	font: Ariel;
	text-align: center;
}
</style>
</head>
<body>
<div id="clock_div"></div>
<script src="./my_clock.js"></script>
</body>
</html>

 由于我们所显示的并不是一个完整HTML页面,所以其中省略了很多标准的tag,当然写出来也没问题,只是没啥用而已。另外值得注意的是其中通过script标签引用了一个外部的js文件。这是由于Chrome并不允许在HTML中直接嵌入JavaScript代码,inline-script也是被禁止的。所以引入外部js文件来实现事件以及元素与事件的绑定。

 

so……接下就需要实现那个my_clock.js

function my_clock(el){
	var today = new Date();
	var h = today.getHours();
	var m = today.getMinutes();
	var s = today.getSeconds();
	m = m>10?m:('0'+m);
	s = s>10?s:('0'+s);
	el.innerHTML = h +":"+m+":"+s;
	setTimeout(function(){my_clock(el)},1000);
}

var clock_div = document.getElementById('clock_div');
my_clock(clock_div);

 

当当~~当~到此一个简单的显示时间的扩展就完成,将其加载到Chrome之中就可以看效果啦~(怎么加载?嘿嘿,你猜~~or百度一下?)

 

分享到:
评论

相关推荐

    谷歌扩展程序之axure-chrome-extension.zip

    通常,Chrome扩展程序的结构包括一个manifest.json文件(描述扩展信息)、HTML、CSS、JavaScript代码以及其他可能的资源文件。用户可以通过解压此zip文件,然后在Chrome浏览器的扩展管理界面加载已解压的扩展来安装...

    Leetcode Chrome extension..zip

    1. `manifest.json`:这是 Chrome 扩展的核心配置文件,定义了扩展的元数据(如名称、版本、权限等)以及扩展的行为。 2. `popup.html` 和 `popup.js`:分别代表弹出窗口的 HTML 结构和 JavaScript 逻辑,用户通常在...

    arex-chrome-extension.zip

    首先,`manifest.json` 文件是每个Chrome扩展的核心配置文件,它定义了扩展的元数据、权限、功能和行为。例如,它会包含扩展的名称、版本号、描述、图标路径以及所请求的浏览器权限(如访问特定网站的权限或执行脚本...

    postman_chrome_extension.zip

    2. **manifest.json**:这是Chrome扩展的配置文件,定义了扩展的元数据(如扩展名、版本、权限等),以及扩展与浏览器交互的方式。 3. **icon.png**及其变体(icon_128.png, icon_48.png, icon_32.png, icon_16.png...

    chrome扩展程序开发/chrome运行本地JS脚本

    1. `manifest.json`:这是扩展的配置文件,包含了扩展的基本信息,如扩展ID、版本号、权限需求以及加载的文件等。 2. `background.js`:后台脚本,常用于处理扩展的持久化任务和事件监听。 3. `content_script.js`:...

    huaban-chrome-extension.rar

    2. **manifest.json**:这是谷歌浏览器插件的核心配置文件,它定义了插件的元数据(如名称、版本、权限等)以及插件的行为和功能。 3. **LICENSE**:这通常包含插件的许可信息,说明了软件的使用条款和版权。 4. *...

    chrome-manifest-loader:适用于Webpack的Chrome清单加载器

    Chrome清单装载机npm install --save-dev chrome-manifest-loader extract-loader file-loader 适用于Webpack的Chrome清单加载程序支持Chrome,Firefox和Opera manifest.json 导入manifest.json定义的资产将package....

    vue-chrome-extension-template:用于chrome扩展的Vue Webpack(v4)模板,具有自动manifest.json和图标生成以及sass支持

    自动填充manifest.json并创建适当大小的图标,因此您不必这样做。 在开发模式下,它还会在服务器的根目录处创建一个index.html ,以便在扩展的各部分之间轻松导航,并提供指向chrome中实际扩展页面的链接(例如...

    chrome-extension-network.zip

    它们通过manifest.json文件进行配置,并可以通过Chrome Web Store进行安装。 在"chrome-extension-network.zip"中,"chrome-network"文件夹很可能包含了实现网络请求的JavaScript代码和相关的HTML/CSS资源。Chrome...

    CHORME APP加载实例

    1. **Manifest文件**:首先,Chrome APP的加载始于manifest.json文件。这个文件是APP的心脏,它告诉Chrome如何处理和运行你的应用。例如,你可以在这里声明需要的权限,如"permissions": ["storage", "alarms"],...

    chrome缓存清除扩展程序,通过js清除chrome缓存的api演示

    要创建一个清除缓存的扩展,我们需要编写一个manifest.json文件来定义扩展的基本信息,包括权限、背景脚本等。 在`manifest.json`文件中,我们需要声明以下权限: ```json { "manifest_version": 2, "name": ...

    chrome extension例子——选中文本笔记

    这通常包含了扩展的所有组成部分,如`manifest.json`(扩展的配置文件)、`background.js`(后台脚本)、`content_script.js`(内容脚本,用于与网页交互)、`popup.html`和`popup.js`(弹出窗口的HTML和JS),以及...

    Chrome Extension (Chrome插件)开发官方最新文档(20190401)

    1. **Manifest文件**:每个Chrome插件都有一个manifest.json文件,它是插件的核心配置文件,包含了插件的基本信息、权限、内容脚本、背景页面等设置。 2. **内容脚本**:内容脚本可以在用户访问特定网页时运行,与...

    ChromeExtension二维码生成器LuckyQRGenerator

    1. `manifest.json`:这是Chrome扩展的核心配置文件,定义了扩展的元数据(如名称、版本、权限)以及扩展的行为,如注入的脚本、内容脚本、浏览器动作等。 2. `background.js`:背景脚本,通常用于处理扩展的持久性...

    浏览器 chrome 插件开发

    1. **Manifest文件**:每个Chrome插件都必须有一个`manifest.json`文件,它是插件的配置文件,包含了插件的基本信息,如名称、版本、权限、图标、内容脚本、背景脚本等。例如,要访问网页内容,你需要在`manifest....

    基于 Vue3 的浏览器扩展( Chrome Extension manifest v3 )基础框架,2022新版

    这是一个浏览器扩展(插件)的基础框架,基于 Vue3、Chrome Extension V3、Tailwind CSS UI。 package.json 部分内容如下 "core-js": "^3.8.3", "vue": "^3.2.13", "vue-router": "^4.0.3", "vuex": "^4.0.0" ...

    listen1_chrome_extension-2.17.7.zip

    1. `manifest.json`:这是Chrome扩展的配置文件,定义了插件的元数据、权限、图标、背景脚本、内容脚本等信息。 2. `icons/` 目录:存储了插件的各种尺寸的图标,用于在浏览器界面中显示。 3. `scripts/` 目录:包含...

    DynamicRaffle-ChromeExtension-源码.rar

    - `manifest.json`: 扩展的配置文件,定义了扩展的元数据、权限、内容脚本、背景脚本等信息。 - `popup.html`: 弹出窗口的HTML文件,通常用于用户界面。 - `popup.js`: 弹出窗口的JavaScript文件,处理用户的交互...

    chrome插件开发文档

    2. **编写manifest.json文件**:这是插件的核心配置文件,用于定义插件的基本信息,如名称、版本、描述、权限和功能。例如,一个简单的manifest.json可能包含插件的名称、版本、描述以及浏览器操作的默认图标路径。 ...

Global site tag (gtag.js) - Google Analytics