当前位置: 首页 > article >正文

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

#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.kler.cn/a/14247.html

相关文章:

  • 独立看门狗(IWDT)
  • Android进阶宝典—Hook
  • 基于Java+Spring+vue+element社区疫情服务平台设计和实现
  • Linux操作系统命令大全
  • 【超算/先进计算学习】日报5
  • 数据结构与算法八 优先队列
  • 2023上半年软考准考证打印时间出来啦~
  • LeetCode:206. 反转链表
  • 【Idea】人工智能编程他来了,Idea集成一款和ChatGPT一样智能的编码辅助神器
  • 使用Docker部署wikitten个人知识库
  • item_search_best-天猫畅销榜API接入详情说明
  • 【学习笔记】unity脚本学习(六)【GUI发展历程、IMGUI控件、Layout自动布局】
  • PCB阻焊桥存在的DFM(可制造性)问题,华秋一文告诉你
  • 有趣的 Kotlin 0x14:Base64编码
  • 【C++】文件IO流及stringstream流的使用
  • 使用google的人脸解锁,如何解锁后直接进入应用界面,而不需要再进行滑动解锁?
  • Linux安装mysql(5.7解压版)
  • 【C++类和对象】类和对象(中):拷贝构造函数 {拷贝构造函数的概念及特征,拷贝构造函数不能使用传值传参,编译器自动生成的拷贝构造函数}
  • 百度文心一言与Notion的比较(机器人通信的例子)
  • linux和windows上RabbitMQ安装教程汇总