首页 > 其他分享 >Chrome 扩展开发概览

Chrome 扩展开发概览

时间:2023-01-30 19:22:16浏览次数:35  
标签:API popup Chrome 概览 扩展 HTML 页面

1. Chrome 扩展的结构组成

  • Chrome扩展的文件结构
  - extension-smaple/
    - manifest.json
    - service-worker.js
    - scripts/
      - content-script.js
    - popup/
      - popup.css
      - popup.js
      - popup.html
    - options/
      - options.css
      - options.js
      - options.html
    - icons/
      - 16.png
      - 32.png
      - 48.png
      - 128.png
  • manifest 文件 (manifest.json)
    manifest.json 是Chrome扩展的配置文件,它是必须要有的,并且必须位于项目的根目录中。它为浏览器
    扩展提供了重要的基础信息,包括:
 1. 扩展名,功能描述,当前版本号以及要使用的图标。
 2. 扩展所需的Chrome API以及权限配置
 3. 为扩展指定的相关文件,例如servicer worker, content script, popup HTML 以及options HTML。
  • 扩展服务工作者 (service-worker.js)
    扩展服务工作者是浏览器在后台运行的基于事件的脚本。它通常用于处理数据,协调扩展程序不同部分的任务,
    以及作为扩展程序的事件管理器。Service Worker 可以访问所有扩展API,但它不能使用文档的全局window对象
    提供的DOM API,它在自己的环境中运行,因此不能直接修改网页内容。

  • 内容脚本 (content-scripts.js)
    扩展使用内容脚本将代码注入主机页面。主机页面是内容脚本与之交互的网站。扩展可以通过指定匹配模式来
    选择内容脚本应该在哪些网站上运行。
    内容脚本允许扩展程序与浏览器中的页面进行交互和修改。例如它们可以在页面中插入新元素,
    更改网站样式,修改DOM元素等。
    内容脚本与主机页面共享对同一DOM树的访问,但在单独的javascript环境中运行。它们还可以访问有限数量
    的Chrome API。

  • 扩展HTML 页面
    根据设计扩展可以有不同的HTML页面,所有扩展HTML文件都可以使用Chrome API,但不能包含内联javascript,
    它必须指向一个javascript文件,最常见的HTML页面是:

 1. 弹出页 (popup.html)
   许多扩展使用弹出窗口来提供功能,用户可以通过单击扩展工具栏图标轻松找到它。当用户离开时,它
   会自动关闭。
 2. 选项页 (options.html)
   选项页为用户提供了一种自定义扩展的方法,例如选择扩展将在哪些站点上运行。

其他扩展HTML页面包括Chrome覆盖页面,沙盒页面或为特定目的而包含的任何自定义页面。

2. Chrome 扩展各组件协同工作

  • 传递信息
    很多时候,内容脚本或其他扩展页面需要从扩展服务工作者发送和接受信息。在这些情况下,任何一方都可以
    侦听另一端发送的消息,并在同一通道作出响应。扩展可以发送一次性请求或建立长期连接以支持多条消息。

  • 存储数据
    Chrome 为扩展提供了专门的存储API,可以用于所有扩展组件。它包括四个用于特定用例的独立存储区域和
    一个在数据更新时进行跟踪的事件侦听器。例如当你在弹出窗口中保存更改时,扩展服务工作者可以使用指定
    的逻辑进行响应。

  • 引用扩展资源
    扩展HTML页面可以使用与常规HTML页面相同的标签来添加扩展资源,内容脚本也可以访问扩展资源,例如图像
    字体等,但需要额外的步骤。

标签:API,popup,Chrome,概览,扩展,HTML,页面
From: https://www.cnblogs.com/xiaodi-js/p/17077058.html

相关文章

  • cocos 扩展插件的制作
    在cocos里面创建一个新的扩展,会生成两个文件,一个是package.json和browser.js。json文件就是来写配置的,里面主要是配置当前的扩展如何打开,以及扩展的一些名称,描述,版本限制......
  • coredns mysql 扩展使用+readyset 试用
    基于db进行dns记录的管理还是比较有用的,尤其在一些开发环境中,以下是一个使用同时也会尝试集成readyset(但是木有成功,应该是mysql编码兼容的问题)添加&构建插件方法比较简......
  • 振弦采集模块配置工具VMTool 扩展功能数据处理
    振弦采集模块配置工具VMTool扩展功能数据处理数据存储数据存储功能模块支持自动或手动将实时数据寄存器值存储到数据库,并支持导出为Excel文件功能。(1)手动存储每点......
  • 河北稳控科技振弦采集模块配置工具VMTool 扩展功能数据处理
    河北稳控科技振弦采集模块配置工具VMTool扩展功能数据处理数据存储数据存储功能模块支持自动或手动将实时数据寄存器值存储到数据库,并支持导出为Excel文件功能。(1)手......
  • laravel composer扩展包的开发到发布
    1、通过Composer创建项目composercreate-project--prefer-distlaravel/laravelpkg2、新建目录接着进入此项目中,创建目录 packages/{your_name}/{your_package......
  • Exgcd(扩展欧几里得算法)
    其实挺简单。GCD(辗转相除法)定理:\[\gcd(a,b)=\gcd(b,a\%b)\]证明:\[\text{设}a=kb+r\text{,则}r=a\bmodb\]\[\text{若}c\text{是}a,b\te......
  • CRT&EXCRT(中国剩余定理和扩展中国剩余定理)
    稍微难一点,其实也挺简单。CRT:用途:给定一个同余方程组,保证所有\(m\)两两互质:\[\begin{cases}x\equiva_1\pmod{m_1}\\x\equiva_2\pmod{m_2}\\...\\x\equiv......
  • ReplaceGoogleCDN扩展功能使用二:拦截请求域名
    文档说明:只记录关键地方;2023-01-29使用例子:例子:拦截访问域名https://www.jingjingxyk.com更多玩法,可配合content_scripts实现清除内容农场规则例子[{......
  • ReplaceGoogleCDN扩展功能使用一: 修改UserAgent
    文档说明:只记录关键地方;2023-01-29目的:因为屏幕小,移动端使用神马搜索太不方便了,想在PC端使用神马搜索实验:通过chromedev-tools控制台调试发现,把UserAgent修改为移......
  • ReplaceGoogleCDN扩展下载和安装
    ReplaceGoogleCDN扩展下载和安装文档说明:只记录关键地方;2023-01-29在线安装备注:扩展市场的代码版本远落后于源码仓库版本ChromeFirefoxEdge手动安装:Chrome......