chrome插件”hello-world“开发详细流程以及日志定位

news2024/11/16 14:23:32

本插件开发文档翻译于Google官方文档Chrome Extension development basics - Chrome Developers

一、插件开发

hello-world插件开发的具体流程如下:

  1. 创建目录hello-world, 存放源代码

  2. 在此目录中创建一个名为manifest.json的新文件并添加以下代码:

    注意:必须将manifest.json文件放在扩展的根目录中。

    {
      "manifest_version": 3,
      "name": "Hello Extensions",
      "description": "Base Level Extension",
      "version": "1.0",
      "action": {
        "default_popup": "hello.html",
        "default_icon": "hello_extensions.png"
      }
    }
    

    这个JSON对象描述了扩展的功能和配置。例如,“action”键声明了Chrome应该用作扩展的操作图标的图像,以及单击扩展的操作图标时在弹出窗口中显示的超文本标记语言页面。将图标下载到您的目录,并确保更改其名称以匹配“default_icon”键中的内容。

  3. 对于弹出窗口,创建一个名为hello. html的文件,并添加以下代码:

    <html>
      <body>
        <h1>Hello Extensions</h1>
      </body>
    </html>
    

    现在,当单击扩展的操作图标(工具栏图标)时,扩展会显示一个弹出窗口。让我们通过在本地加载它来Chrome测试它。确保所有文件都已保存。

插件开发源码链接

二、加载未打包的扩展

在开发人员模式下加载解压的扩展:

  1. 通过在新选项卡中输入chrome://扩展进入扩展页面。(也可以通过单击扩展菜单拼图按钮,然后选择菜单底部的管理扩展等方式进入扩展页面)在这里插入图片描述

  2. 通过单击开发人员模式旁边的切换开关启用开发人员模式,然后单击按钮加载已解压的扩展程序并选择扩展目录。(img-mxKLW5PU-1689431402825)(images/image-20230715214720459.png)]

扩展程序已成功安装。由于manifest.json中没有包含扩展程序图标,因此将为扩展程序创建一个通用图标。

三、插件使用结果

单击扩展程序的操作图标(工具栏图标), 会看到一个弹出窗口 。 弹出窗口的内容为hello. html文件里面的内容。

默认情况下,当您在本地加载扩展时,它会出现在扩展菜单中。将您的扩展固定到工具栏可以在开发过程中快速访问您的扩展。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lfNdJboy-1689431402826)(images/image-20230715215142561.png)]

四、重新加载扩展程序

修改manifest.json的代码并将扩展的名称更改为“Hello Extension of the world!”

{
  "manifest_version": 3,
  "name": "Hello Extensions of the world!",
  ...
}

保存文件后,要在浏览器中查看此更改,您还必须刷新扩展。转到扩展页面并单击开/关切换旁边的刷新图标:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SKUGxyFS-1689431402826)(images/image-20230715215731661.png)]

刷新扩展后,重新加载扩展程序的结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-abDFm6TG-1689431402826)(images/image-20230715220013349.png)]



并非所有组件都需要重新加载才能查看所做的更改,如下表所示:

Extension componentRequires extension reload
The manifestYes
Service workerYes
Content ScriptsYes (plus the host page)
The popupNo
Options pageNo
Other extension HTML pagesNo

五、查找控制台日志和错误日志

5.1 Console logs

在开发过程中,您可以通过访问浏览器控制台日志来调试代码。在这种情况下,我们将找到弹出窗口的日志。首先向hello. html添加脚本标记。

<html>
  <body>
    <h1>Hello Extensions</h1>
    <script src="popup.js"></script>
  </body>
</html>

然后,创建一个popup.js文件并添加以下代码

console.log("This is a popup!")

注意,由于此时添加了Content Scripts这部分内容, 需要重新加载扩展程序


要查看控制台中记录的此消息,具体步骤为:

  1. 打开弹出窗口。
  2. 右键单击弹出窗口。
  3. 选择检查
  4. DevTools中,浏览器会自动导航到控制台面板。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6nSmRwdq-1689431402827)(images/image-20230715221138648.png)]

5.2 Error logs

popup.js文件中添加一段错误的代码:

console.log("This is a popup!) //broken code

转到扩展页面并打开弹出窗口, 将出现一个错误按钮。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZIPi9nwW-1689431402827)(images/image-20230715221618754.png)]

单击错误按钮可以了解有关错误的更多信息:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8WLnoG4W-1689431402827)(images/image-20230715221705966.png)]

要了解有关service worker, options page, and content scripts 的更多信息,可以查阅Debugging extensions.。

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

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

相关文章

会声会影2023旗舰版Corel VideoStudio Ultimate 2023 V26.0.0.136整合盘版本

会声会影2023旗舰版Corel VideoStudio Ultimate 2023 V26.0.0.136整合盘版本是一款有趣且直观的视频编辑器&#xff0c;包含高级工具和高级效果&#xff0c;智能功能和最佳性能的高级视频编辑软件&#xff0c;将您最美好的时刻和生活体验变成令人惊叹的电影。 从自定义标题和过…

克服“一支笔,一双手,一道力扣(Leetcode)做一宿”的窘境:我的烦恼和建议

文章目录 每日一句正能量前言原因建议自己相关的经历可能存在的问题根据问题进行分解或建立思维导图分享好用的刷题网站并进行介绍后记 每日一句正能量 想升高&#xff0c;有两样东西&#xff0c;那就是必须作鹰&#xff0c;或者作爬行动物。——巴尔扎克 前言 作为一名计算机…

用Maven的exec插件执行Java程序

Maven的exec插件介绍 利用maven的exec插件可以执行系统和Java程序。 官网资源 exec插件官网&#xff1a;https://www.mojohaus.org/exec-maven-plugin/java-mojo.html Goals exec:exec表示在一个单独的进程内执行系统和Java程序。 exec:java表示在当前的Java虚拟机内执行J…

Jetpack Compose之学习前的准备~

作者&#xff1a;TimeFine 一、为啥学习Compose 学习Compose一开始我是拒绝的&#xff0c;因为习惯改变太大&#xff0c;写xml挺好的为啥要卷Compose&#xff1f; 后来看了郭霖大佬的文章 写给初学者的Jetpack Compose教程&#xff0c;为什么要学习Compose&#xff1f; 觉得大…

MySQL 进阶之王,MySql 性能实战源码 + 笔记 + 项目实战

随着互联网时代的兴起&#xff0c;MySQL 在数据库领域日益显现出举足轻重的地位&#xff0c;它不断扩大的用户群体就是很好的证明。在这样的背景下&#xff0c;需要越来越多的人在知识资源方面为之付出&#xff0c;将自己对 MySQL 数据库的学习过程、运维经验、个人理解等记录下…

强强联手!迅镭激光与安易控达成战略合作,双方携手发展再提速!

7月伊始&#xff0c;安易控中国首个新能源船舶动力电池系统自动化制造基地揭幕仪式在珠海高新区隆重举行&#xff0c;迅镭激光与安易控达成战略合作&#xff0c;双方秉承开放、共赢的合作理念&#xff0c;在船舶动力电池系统领域全面合作&#xff0c;共同为船舶动力系统与储能系…

前端 | (一)前端简介 | 尚硅谷前端html+css零基础教程2023最新

学习来源&#xff1a;尚硅谷前端htmlcss零基础教程&#xff0c;2023最新前端开发html5css3视频 文章目录 &#x1f4da;前言&#x1f4da;课程前序知识&#x1f407;两位先驱&#x1f407;计算机基础知识&#x1f407;应用软件架构&#x1f407;浏览器&#x1f407;网页相关概念…

电解质溶液的电传导率

1 概述 在通电、交变磁场等外界作用下&#xff0c;溶液的离子浓度分布变化导致溶液电传导率改变。在电镀、电泳等电化学作业中&#xff0c;需要考虑离子浓度和电传导率之间的相互影响导致的质量问题。 仿真的电镀层厚度分布&#xff08;图源&#xff1a;comsol.com&#xff09;…

【玩转Linux操作】Linux进程(进程基本介绍,父子进程,终止进程,进程树)

&#x1f38a;专栏【玩转Linux操作】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f354;进程的基本介绍&#x1f354;显示系统执行的进程⭐…

uniapp实现微信小程序自带的分享功能

定义 share.js 文件 export default {data() {return {// 默认的全局分享内容share: {title: 标题,path: /pages/index/index, // 全局分享的路径imageUrl: , // 全局分享的图片(可本地可网络)}}},// 定义全局分享// 1.发送给朋友onShareAppMessage(res) {return {title: this…

剑指offer37.序列化二叉树

先不讲题目&#xff0c;先讲讲序列化和反序列化。 一&#xff0c;序列化与反序列化 在Java中&#xff0c;序列化和反序列化是用于将对象转换为字节流和将字节流转换回对象的过程。序列化是将对象转换为字节流&#xff0c;以便可以在网络上传输或保存到文件中。而反序列化则是…

jb2文件在web端展示之easyJBIG2show

easyJBIG2show an easy JBIG2 file web show github地址 一、背景 最近无意中接触到了一个二维码图片&#xff0c;该图片格式是jb2格式。翻阅资料发现JBIG标准最初在1993年发布&#xff0c;在当时被广泛应用于传真机和文档扫描仪等设备中。JBIG采用了一种自适应二进制编码算…

7.14~7.15学习总结

Java的前置知识学习时间截至了&#xff0c;慌的一批~~。 看看自己学的&#xff0c;再看看要求学的&#xff0c;简直&#xff1a; 现在继续&#xff1a;IO流里面的Commons_IO的用法&#xff1a; public class Main {public static void main(String[]args) throws IOException…

初识Linux——“Linux”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰开了一个全新的专栏啦&#xff0c;这就是Linux&#xff0c;下面&#xff0c;让我们一起进入Linux的世界吧&#xff01;&#xff01;&#xff01; Linux 背景介绍 搭建 Linux 环境 使用 XShell 远程登陆到 Linux Lin…

图片速览 DCN K-means-friendly Spaces: Simultaneous Deep Learning and Clustering

本文使用了一种交替更新网络参数和聚类中心的方法。在网络更新完成之后&#xff0c;对于固定的网络参数和 M&#xff0c;再更新当前样本的分配向量。然后根据新的分配结果如式子3.8更新聚类中心&#xff1a; 注&#xff1a;文中还有问题是否能进行凸优化的部分 CG https…

35 用户虚拟地址空间的 堆栈区间初始化

前言 对于用户程序来说, 堆栈区间 是一个很重要的组成部分, 这部分核心用于支持 函数调用, 参数暂存, 局部变量的存储 等等 我们这里 就来看一下 这块空间 的初始化的相关情况 这里会结合 内核进行调试, 以及 内存中的数据进行分析 堆栈空间的初始化 stack_base, stack_…

【Megatron-DeepSpeed】张量并行工具代码mpu详解(二):Collective通信操作的封装mappings

相关博客 【Megatron-DeepSpeed】张量并行工具代码mpu详解(一)&#xff1a;并行环境初始化 【Megatron-DeepSpeed】张量并行工具代码mpu详解(二)&#xff1a;Collective通信操作的封装mappings 【深度学习】【分布式训练】DeepSpeed&#xff1a;AllReduce与ZeRO-DP 【深度学习】…

day27 贪心算法

1.什么是贪心&#xff1f; 比如10张钞票&#xff0c;有1&#xff0c;5&#xff0c;20&#xff0c;100等面额&#xff0c;取五张&#xff0c;如何取得到数额最多的钱&#xff1f;每次取面额最大的那张钞票&#xff1b;就是每个阶段的局部最优&#xff1b;全局最优就是最后拿到的…

扫雷游戏制作

扫雷 0 目录 前言 游戏三部曲 游戏设计 函数说明 程序打包 1 前言 终极目标&#xff1a;打造多关卡扫雷游戏 制作环境: VS2015 支持:VC2010 VS各个版本 easyx图形库(点我) 一直想发表扫雷这种锻炼思维的游戏&#xff0c;其实扫雷弄个标题栏可以随意选择挑战…

从小白到大神之路之学习运维第60天--------Ansible自动化运维工具(安装、操作、简单使用,模块的作用)

第三阶段基础 时 间&#xff1a;2023年7月13日 参加人&#xff1a;全班人员 内 容&#xff1a; Ansible自动化运维工具 目录 一、Ansible概述 二、Ansible特点 三、Ansible应用 &#xff08;一&#xff09;使用者 &#xff08;二&#xff09;Ansible工具集合 &…