🕐都快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/这个网址打开扩展程序,然后打开开发者模式,点击加载已解压的扩展程序,即可进行查看。

🔴 效果

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

相关推荐
qiyi.sky2 分钟前
JavaWeb——Vue组件库Element(3/6):常见组件:Dialog对话框、Form表单(介绍、使用、实际效果)
前端·javascript·vue.js
煸橙干儿~~6 分钟前
分析JS Crash(进程崩溃)
java·前端·javascript
安冬的码畜日常15 分钟前
【D3.js in Action 3 精译_027】3.4 让 D3 数据适应屏幕(下)—— D3 分段比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·分段比例尺
l1x1n043 分钟前
No.3 笔记 | Web安全基础:Web1.0 - 3.0 发展史
前端·http·html
昨天;明天。今天。1 小时前
案例-任务清单
前端·javascript·css
zqx_72 小时前
随记 前端框架React的初步认识
前端·react.js·前端框架
惜.己2 小时前
javaScript基础(8个案例+代码+效果图)
开发语言·前端·javascript·vscode·css3·html5
什么鬼昵称3 小时前
Pikachu-csrf-CSRF(get)
前端·csrf
长天一色3 小时前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
NiNg_1_2343 小时前
npm、yarn、pnpm之间的区别
前端·npm·node.js