[FE] Chrome Extension 五步曲

1. Create the manifest.json

Only three fields is needed.

{
    "name": "Getting Started Example",
    "version": "1.0",
    "manifest_version": 2,
    "description": "xx"
}

2. Add instruction (background.js)

Create and register a background.js for manifest.json to reference.

{
    "name": "Getting Started Example",
    "version": "1.0",
    "manifest_version": 2,
    "description": "xx",
    "background": {
        "scripts": ["background.js"],
        "persistent": false
    },
    "permissions": ["storage"]
}

So, what the means of "persistent" set to false ?

The only occasion to keep a background script persistently active is if the extension uses chrome.webRequest API to block or modify network requests.

The webRequest API is incompatible with non-persistent background pages.

Most APIs, must be registered under the "permissions" field in the manifest for the extension to use them.

3. Introduce a User Interface (popup.html)

<!DOCTYPE html>
  <html>
    <head>
      <style>
        button {
          height: 30px;
          width: 30px;
          outline: none;
        }
      </style>
    </head>
    <body>
      <button id="changeColor"></button>
    </body>
  </html>

Like the background script, this file needs to be designated as a popup in the manifest under page_action.
Toolbar icon is in the default_icons under page_action.
Management page icon is in the icons.

{
    "name": "Getting Started Example",
    "version": "1.0",
    "manifest_version": 2,
    "description": "xx",
    "background": {
        "scripts": ["background.js"],
        "persistent": false
    },
    "permissions": ["storage"],
    "page_action": {
        "default_popup": "popup.html",
        "default_icon": {
            "16": "images/get_started16.png",
            "32": "images/get_started32.png",
            "48": "images/get_started48.png",
            "128": "images/get_started128.png"
        }
    },
    "icons": {
      "16": "images/get_started16.png",
      "32": "images/get_started32.png",
      "48": "images/get_started48.png",
      "128": "images/get_started128.png"
    }
}

4. Logic layer (popup.js)

<!DOCTYPE html>
<html>
    ...
  <body>
    <button id="changeColor"></button>
    <script src="popup.js"></script>
  </body>
</html>

5. Give Users Options

Start by creating a file in the directory called options.html
Create a file called options.js in the extension directory with the logic.

<!DOCTYPE html>
  <html>
    <head>
      <style>
        button {
          height: 30px;
          width: 30px;
          outline: none;
          margin: 10px;
        }
      </style>
    </head>
    <body>
      <div id="buttonDiv">
      </div>
      <div>
        <p>Choose a different background color!</p>
      </div>
    </body>
    <script src="options.js"></script>
  </html>

Then register the options page in the manifest,

  {
    "name": "Getting Started Example",
    ...
    "options_page": "options.html",
  }

Ref:https://developer.chrome.com/extensions/getstarted

Link:https://www.cnblogs.com/farwish/p/12093314.html

原文地址:https://www.cnblogs.com/farwish/p/12093314.html

时间: 2024-07-31 16:51:10

[FE] Chrome Extension 五步曲的相关文章

从一名打工者蜕变成一名企业家的五步曲

无数打工者每天皆梦想能于某天开创自己的公司.其总觉得自己拥有着进入一个领域并打造出一个成功的事业所需的正确的技能或者正确的创业点子.但,这些人到现在都还是只是在脑袋里意淫着而已,他们并没有真正的付诸行动去开始追求他们的创业点子.这又是为何呢? 如果你有一个可以创业的点子但又没有真正放手去干,那是因为什么原因拖了你后腿呢? 对于很多有抱负的企业家来说,缺乏如何启动一个可以催生出一家公司的项目的蓝图,让他们举步维艰.大部分人甚至不知道如何举出第一步,剩下一部分人却又不确定这种职业生涯是否是他们自己想

iOS 之美:iOS Delegate 使用五步曲

在iOS 开发中, 搞清楚Delegate 是需要花些时间的. Delegate 本来是软件架构设计的一种理念.对于像手机这样一个有限的设备,我们需要充分考虑到:内存要尽量省着用: 视图之间的关系要清晰. 如果你所开发的App ,仅仅是一个demo,是体现不出架构优势的. 但当你的App 需要处理海量数据, 而视图之间的关系又颇为复杂时,你将不得不考虑这些问题.视图之间的关系,不仅仅是跳转,更重要的是视图之间数据的传递.当视图A 发生变化时,如何将这个变化告知视图B 呢? 举个例子吧. 如下图所

Kali Linux渗透测试五步曲

Kali Linux的设计目的是渗透测试.不管渗透测试者的起点是白盒测试.黑盒测试,还是灰盒测试,在用Kali或其它工具进行渗透测试时,总要遵循一些步骤. 第一步:侦察阶段 在发动攻击之前,渗透测试者应当尽量多地了解目标环境和系统的特点.渗透测试者找到的目标信息越多,就越有更好的机会确认最容易和最快的成功方法.与白盒测试相比,黑盒测试要求进行更多的侦察,因为测试者并没有获得太多的数据.侦察服务可能包括调查目标的互联网足迹.监视资源.监视人员.过程等,扫描网络信息(如IP地址和系统类型),社会工程

C语言程序设计入门学习五步曲(转发)

笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢? 二.用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识.例如,如果你不知道长方形的面积公式,即使C语言

工作流学习——Activiti流程变量五步曲

一.前言 上一篇文章我们将流程实例的启动与查询,任务的办理查询都进行了介绍,我们这篇文章来介绍activiti中的流程变量. 二.正文 流程变量与我们平常理解的变量是一样的,只不过是用在了我们activiti中,所以称为流程变量,流程变量在整个工作流扮演着很重要的角色. 例如,请假流程中有请假天数.请假原因等一些参数都是流程变量使用的范围,流程变量的作用域范围是只对应一个流程实例.也就是说各个流程实例的流程变量是不互相影响的.流程实例结束完成以后流程变量还保存在数据库中(存放在流程变量的历史表中

程序设计入门学习六步曲

初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢? 二.用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识.例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程

OpenCV-2.4.2 安装三步曲

注意:本人未使用  ffmpeg 的全部依赖库,比如AAC 音频编码库(libfaac-dev),MP3 编码库(ibmp3lame-dev),具体的配置为: ./configure --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-x11grab --enable-libx264 --enable-libxvid ===========================================

使用HTML 5/CSS3五步快速制作便签贴特效

使用HTML 5/CSS3五步快速制作便签贴特效(1)      本篇文字将展示给你的是,如何利用HTML5/CSS3,仅用5步就可以制作便签贴效果的HTML页面,效果图如下:      (注:图里的文字纯属杜撰,搞笑目的,如有雷同,纯属巧合,谢谢! 注:该效果可以在Safari, Chrome,Firefox和Opera在看到效果,IE上由于对HTML5的支持不完全,所以看不出效果.      第一步:创建基本HTML和正方形      首先添加基本的HTML结构以及构建基本的正方形,代码如下

五步完成一个 VSCode 扩展(插件)开发

第一步: 安装扩展生成器 npm install -g yo generator-code vsce 第二步: 初始化一个 Hello World 扩展 yo code 图来自 CN-VScode-Docs 网站 按提示, 输入扩展名, ID, 描述 等信息, 然后等待安装完成~ 第三步: 测试一下扩展 打开 VS Code,选择"文件 > 打开文件夹",选择你刚刚生成的项目目录 直接按下 F5 或 切换到 VSCode 的调试面板, 点击 Debug 按钮,然后点击开始 新的