🕐都快2024年了,给自己做一款“谷歌插件”吧!!!

前言 🔻

- 🔴 1.概念

Chrome拓展程序就是我们常说的谷歌插件,也就是安装在谷歌浏览器中的软件程序,用来修改浏览器的功能。我们作为非常喜欢浏览各式各样网站的用户,为了方便一些操作或者特需一些特定的功能,我们浏览器中肯定多多少少安装并正在使用某些插件。

插件是基于web技术构建的,即写(html、js、css)。我们自己想要某个功能,可以自己开发给自己,发布到应用商店的插件,尽量要做到功能易于理解,目的单一统一,UI用户交互界面小但目的强。

通俗来讲,chrome插件就是一个由HTML、CSS、JS、图片等资源组成的一个.crx后缀的压缩包。

chrome插件通过向chrome浏览器添加特性和功能来增强浏览体验,这些特性和功能包括: ✅1、生产力工具

2、网页内容丰富

3、信息的聚合

◾ web技术构建:

html

css

javascript
web platform apis 网页平台api

- 🔴 2.名字由来

crx -> chrome extension

- 🔴 3.应用范围

chrome插件可以应用在除了chrome浏览器之外国内所有其他webkit内核的浏览器上,比如:

360安全(极速)浏览器

搜狗浏览器

QQ浏览器

Manifest插件配置 🔻

1、创建一个文件夹叫chrome-extensions,用来放这个插件的所有文件。

2、创建文件manfest.json,这个文件是插件的配置文件。其中描述了插件的名称版本权限、还有其它一些相关信息。chrome插件开发没有什么项目结构要求,就一点就是,保证根目录有一个manifest.json文件。其中manifest_version、name、version、key这3个是必须要写的。

Manifest 版本V3 属性介绍:

🔴 必需

"name" : "demo" // 插件名

"version" : "1.0.0" // 插件版本

"manifest_version": 3 // 清单文件的版本,这个必须写

🔴 推荐

"description": "chrome拓展" // 插件描述

icons : 图标

json 复制代码
"icons": { 
   "16": "img/icon.png", 
   "48": "img/icon.png", 
   "128": "img/icon.png"
}

🔴 可选

content_scripts: 指定静态加载的javascript或者css文件,每次打开或者url模式下匹配的页面,都会用到配置到的文件。

ruby 复制代码
{
    "name": "人生时钟",
    ...
    "content_scripts": [
        {
            // 这三个是必须的,matches、css、js
            "matches": ["https://*.example.com/*"], // matches是个数组,可以这样写["http://*/*", "https://*/*"]; 也可以直接这样写匹配所有地址 ["<all_urls>"]
            "css": ["my-styles.css"], // 可以按相对路径这样写 ["css/custom.css"]
            "js": ["content-script.js"], // js可以这样写["js/jquery-1.8.3.js", "js/content-script.js"]
            
            // 可选
            "exclude_matches": ["*://*/*foo*"],
            "include_globs": ["*example.com/???s/*"],
            "exclude_globs": ["*bar*"],
            "all_frames": false,
            "match_origin_as_fallback": false,
            "match_about_blank": false,
            
            "run_at": "document_idle", // 代码注入的时间, 可选值: "document_start", "document_end", 或者"document_idle":表示页面空闲的时候
            ...
        }
    ],
    ...
}

其它可选的属性部分可以自行查阅官方文档进行按需拿取

案例 🔻

做一个预期文章阅读时间的插件,像现在掘金文章会有一个预估阅读时间总长的这么一个计算:

🔴 文件目录结构

根目录一定要有manifest.json配置文件

🔴 配置文件配置

js 复制代码
{
    // 基本配置
    "manifest_versiion": 3, // 用的最新的版本 3
    "name": "预估阅读时长", // 插件名字
    "version": "1.0", // 插件版本
    "description": "这是一个预估文章阅读时长的插件", // 插件描述
    "icons": {
        "16": "images/icon-16.png",
        "32": "images/icon-32.png",
        "48": "images/icon-48.png",
        "128": "images/icon-128.png"
    }, // 插件图标 几个尺寸都可以用同一个图标
    
    
    // 页面配置
    "permissions": ["notifications", "storage"], // 这里由于用到插件通知图标和插件存储
    
    "background": {
        "service_worker": "background.js" // 这个用来作为插件的后台脚本文件,就是在后台运行的,配置的文件将会负责后台的逻辑,处理一些特定的任务,比如说网络请求拦截、消息传递等等,可以长时间在后台运行,不堵塞主线程。
    }
    
    "action": {
        "default_title": "阅读时长", // 鼠标悬停在图标时显示的文本
        "default_popup": "popup.html" // 点击图标弹出的交互页面
    }
    
    // 插件的内容脚本,就是在特定网页上注入并执行的js代码,允许指定多个内容脚本,也允许匹配多个网页地址
    "content_scripts": [
        {
            "js": ["background.js"],
            "matches": [
                "https://juejin.cn/post/*" // 当访问这个网页的时候,执行background.js文件的js代码
            ]
        }
    ]
    
}

🔴 代码

popup.html

popup.js

background.js

写好代码之后,在chrome://extensions/这个网址打开扩展程序,然后打开开发者模式,点击加载已解压的扩展程序,即可进行查看。

🔴 效果

☎️ 希望对大家有所帮助,如有错误,望不吝赐教,欢迎评论区留言互相学习。感谢阅读,祝您开发有乐趣。

相关推荐
y先森1 小时前
CSS3中的伸缩盒模型(弹性盒子、弹性布局)之伸缩容器、伸缩项目、主轴方向、主轴换行方式、复合属性flex-flow
前端·css·css3
前端Hardy1 小时前
纯HTML&CSS实现3D旋转地球
前端·javascript·css·3d·html
susu10830189111 小时前
vue3中父div设置display flex,2个子div重叠
前端·javascript·vue.js
IT女孩儿2 小时前
CSS查缺补漏(补充上一条)
前端·css
吃杠碰小鸡3 小时前
commitlint校验git提交信息
前端
虾球xz4 小时前
游戏引擎学习第20天
前端·学习·游戏引擎
我爱李星璇4 小时前
HTML常用表格与标签
前端·html
疯狂的沙粒4 小时前
如何在Vue项目中应用TypeScript?应该注意那些点?
前端·vue.js·typescript
小镇程序员4 小时前
vue2 src_Todolist全局总线事件版本
前端·javascript·vue.js
野槐4 小时前
前端图像处理(一)
前端