#Chrome扩展程序开发教程--01:基本概念介绍

news2024/12/25 23:52:20

#Chrome扩展程序开发教程--01:基本概念介绍

    • 引言
    • 1、什么是扩展程序?
    • 2、Web技术
    • 3、Chrome 扩展程序API
    • 4、扩展程序架构

引言

        本系列博客旨在带来最新的Chrome扩展程序开发入门教程。


1、什么是扩展程序?

        通过向Chrome浏览器添加自定义特性和功能来提升网上冲浪体验,比如:

  • 生产力工具
  • 丰富网页网页内容
  • 信息聚合

2、Web技术

        扩展程序本质上也是一个Web应用,开发扩展程序需要使用和Web应用一样技术栈:

  • Javascript
  • HTML
  • CSS

3、Chrome 扩展程序API

        扩展程序可以使用浏览器提供的所有JavaScript APIs。扩展程序之所以能够比普通Web应用程序更强大,是因为它们还可以使用Chrome提供的更强大的API。例如:

  • 改变指定网站的功能或行为
  • 允许用户收集和组织各网站的信息
  • 为 Chrome DevTools 添加自定义功能

4、扩展程序架构

        一个完整的扩展程序的架构如图所示:

  • manifest.json
    所有的扩展程序必须在根目录中包含且只包含一个 manifest.json 文件。这个文件我们通常称为清单文件,里面记录了关于这个扩展程序的所有元数据:使用的文件,需要的权限,谁来处理事件,谁来处理网页等。

  • service worker
    service worker(service-worker.js)是一个基于事件的脚本,在后台运行,通常用来协调扩展程序中不同部分的任务和监听浏览器事件,如:扩展程序被安装、打开页面、关闭页面,创建新标签、添加新书签、点击扩展工具栏图标等。service worker 可以使用所有的Chrome API,但 service worker 不能直接与网页的内容直接进行交互,需要与 content scripts 进行通信来间接修改网页的内容。

  • content scripts
    content scripts(content-script.js)会自动向网页注入 JavaScript 代码,负责处理网页内容,可以读取和修改它们所注入的网页的 DOM。由于安全等原因 content scripts 的运行环境和网页内容本身是隔离的,也就是说网页本身所创建对象和函数,在 content scripts 中是无法访问的,反之亦然。而且 content scripts 只能使用部分 Chrome API,但可以通过与 service worker 进行通信来间接使用其它 Chrome API。

  • 可视化界面
    扩展程序可以通过包括各种 HTML 文件来构建可视化界面,与用户进行交互,但这些 HTML 文件不能有内嵌 JavaScript 代码,想要使用 JavaScript 就必须指向 js 文件。所有这些页面都可以访问 Chrome API。最常见的两种 HTML 界面包括:

    • popup
      大多数扩展程序都使用 popup(popup.html)来提供交互功能,如显示标签列表,或有关当前页面的额外信息。用户可以通过点击扩展工具的图标打开它,当用户点击其它地方时,popup就会自动关闭。
    • options
      部分扩展程序还使用 options(options.html)来提供更多,更详细的交互功能,例如配置扩展程序可以在哪些网站上运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/440501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker容器---网络、容器操作

Docker容器---网络、容器操作 一、docker实现原理二、docker网路模式1、Host模式2、container模式3、none模式4、bridge模式 三、自定义网络1、查看网络模式列表2、查看容器信息3、指定分配IP地址4、自定义网络固定IP 四、暴露端口五、容器端口映射1、创建端口映射 六、资源控制…

wordpress建站/demo

bidewang.co/ele 建站的另一种途径Sign in – My Account tanrenchang.atspace.cc 登录 ‹ Fashion trading platform — WordPress cPanel 是一个用于管理网站的虚拟主机控制面板。 使用 cPanel,可以轻松管理电子邮件帐户、数据库、FTP 用户以及与托管、设置和管…

windows10下使用minGW64 编译krita源码报错

系列文章目录 文章目录 系列文章目录前言一、错误原因二、使用步骤1.引入库 前言 collect2.exe: error: ld returned 1 exit status mingw32-make[2]: *** [plugins\color\lcms2engine\CMakeFiles\kritalcmsengine.dir\build.make:614: bin/kritalcmsengine.dll] Error 1 ming…

websever|2.19-2.27|信号概述-SIGCHILD信号

2.19信号概述 信号也是进程间通信的一种方式 其中1-31是操作系统定义的标准信号,比较重要。需要掌握其中几个。 34-64是预定义好的信号,是实时的信号 core文件中保存异常终止的一些信息。 在2.20节的开头,老师重点讲解了 的core文件。 进程出…

57 openEuler搭建Mariadb数据库服务器-管理数据库用户

文章目录 57 openEuler搭建Mariadb数据库服务器-管理数据库用户57.1 创建用户57.2 查看用户57.3 修改用户57.3.1 修改用户名57.3.2 修改用户示例57.3.3 修改用户密码57.3.4 修改用户密码示例 57.4 删除用户57.5 用户授权57.6 删除用户权限 57 openEuler搭建Mariadb数据库服务器…

集群聊天服务器项目(四)——项目总结

集群聊天服务器项目总结 首先是就是项目介绍集群聊天服务器项目(零)——项目介绍中的内容,就不再次copy过来了 项目简单介绍 技术栈 环境和库依赖 按模块介绍整个项目 程序的主要模块是网络模块、业务模块、数据模块、Json、redis发布订阅消息队列模块以及ngi…

Anaconda环境闭着眼睛安装tensorflow2.0-GPU

1.创建conda环境 conda create -n tf2 python3.7 2.进入conda环境 conda activate tf2 3.输入 nvidia-smi 查看有没有显卡驱动。(没有安一个,不管是windows/linux) 4. 安装cudatoolkit 和 cuDNN conda install cudatoolkit10.0 cudnn 5. 安装tensorflow pip ins…

【最佳实践】OAuth标准和基于OAuth2.0实现Github 授权单点登录的保姆级教程

【最佳实践】OAuth标准和基于OAuth2.0实现Github 授权单点登录的保姆级教程 第一章:OAuth基础知识1.1 OAuth起源1.2 OAuth简介1.3 OAuth的角色1.4 OAuth的授权流程1.5 OAuth的安全性1.6 OAuth标准的历史版本 第二章:OAuth2.0的工作原理2.1 OAuth2.0简介2…

前端--移动端布局--1移动web开发流式布局

目标: 能够知道移动web的开发现状 能够写出标准的viewport 能够使用移动web的调试方法 能够说出移动端常见的布局方案 能够描述流式布局 能够独立完成京东移动端首页 目录: 移动端基础 视口 二倍图 移动端调试 移动端技术解决方案 移动端常…

【全屏导航栏菜单】

提示&#xff1a;全屏导航栏菜单,炫酷的全局动画和导航切换动画 前言 提示&#xff1a;以下是本篇文章的代码内容,供大家参考,相互学习 一、html代码 <!DOCTYPE html> <html><head><meta http-equiv"content-type" content"text/html; c…

浅尝GoWeb开发之Gin框架

一、框架简介 gin 目前应用最广泛的golang框架&#xff0c;甚至已经变成了golang的官方框架&#xff0c;但它主要是一个RESTFul的框架。封装比较优雅&#xff0c;API友好&#xff0c;源码注释比较明确。个人比较推荐。 beego 国内最早的golang框架&#xff0c;也是最全的MV…

opencv (二十二) 创建滑动条

滑动条(Trackbar)是OpenCV动态调节参数特别好用的一种工具,它依附于窗口存在。 创建滑动条:createTrackbar()函数 createTrackbar函数用于创建一个可以调整数值的滑动条(也称轨迹条),并将滑动条附加到指定的窗口上,它往往会和一个回调函数配合起来使用。 int createT…

你的GPT跟ChatGPT可能只差了一个DPU

“人类永远不会嫌网络太快&#xff0c;就像永远不会嫌高铁太快&#xff0c;你只会嫌它慢&#xff0c;希望它更快些。” 一个月内&#xff0c;百度、阿里、腾讯、商汤、讯飞、360等国内大厂扎堆发布“中国版 GPT ”&#xff0c;这家的名字还没记清楚&#xff0c;另一家的又蹦了出…

python逝练系列(终章)

目录 1、(最大数的出现)编写程序读取整数,找出它们中的最大值&#xff0c;然后计算它的出现次数。假设输入以数字0结束。假设你输入的是“352555 0";程序找出的最大数是5&#xff0c;而5的出现次数是4。(提示:维护两个变量max和 count。变量max存储的是当前最大数&#xf…

TypeScript自学文档

目录 1.什么是Ts? 1.1 设计公司&#xff1a;微软 1.2 TS概述 1.3 TS是静态类型 JS是动态类型 1.4 TS是强类型语言 JS是弱类型语言 2.TypeScript编译器 2.1 安装 2.2 TS自动编译和编译选项设置 3.TS的数据类型 3.1 基础数据类型number、string、boolean 3.2 Arrays&a…

【svn】如何批量忽略文件和文件夹

目录 一、通过svn:ignore 1、文件夹空白处右键 TortoiseSVN → Properties 打开 2、New → Other 3、global-ignores属性的值&#xff0c;即需要要忽略的文件 点击OK 4、取消忽略的文件 选中 Rmove &#xff0c;提交就可以看到idea文件了 二、svn:global-ignores 1、右键…

高通开发系列 - msm-4.9中usb初始化流程和adb功能问题

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回高通开发系列 - 总目录 目录 USB功能集android平台adb使能流程Linux系统使能流程USB时钟USB供电U盘不能正常使用分析adb设备无法识别问…

三、JS03 DOM 操作

三、DOM 操作 3.1 JavaScript DOM 操作 DOM (Document Object Model) 为文档对象模型&#xff0c;是 HTML 和 XML 文档的编程接口 DOM 提供了对整个文档的访问模型&#xff0c;将文档作为一个树形结构 树的每个节点表示了一个 HTML 标签或标签内的文本 3.1.1 DOM 操作分类 使…

SSM整合————单表操作基础版

一、创建数据库&#xff1a; 1. 创建一个 web 项目&#xff0c;并部署到 tomcat 服务器中测试项目 是否能够正常加载并访问首页。 2. 完善项目的结构并导入 SSM 相关的jar包 3.创建SSM框架对应的配置文件 springMVC配置文件&#xff1a;1.扫描controller&#xff1b;2.配置视图…

ERROR org.springframework.web.context.ContextLoader

项目启动时报错&#xff1a; ERROR org.springframework.web.context.ContextLoader - Context initialization failed java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.clearCache() 原因分析 这个错误的原因可能是因为 Spring 的不同…