首页 > 其他分享 >chrome插件开发

chrome插件开发

时间:2023-07-04 15:03:48浏览次数:56  
标签:插件 popup chrome js default 开发 action 页面

1. 前置知识

JavaScript
一些基本前端知识

2. 环境准备

运行环境:Chrome浏览器或Chromium内核浏览器(如Edge),在浏览器”拓展”中打开”开发人员模式”

3. 目录结构

├── css      // css 文件
├── html     // html 文件
├── images   // 存放插件图标等图片
├── js       // js 文件
├── jsconfig.json // 配置相关API代码补全、代码提示
└── manifest.json // 插件配置文件

在jsconfig.json中添加下面的内容,就能用chrome 拓展API的代码补全/提示了!

{
  "typeAcquisition": {
    "include": ["chrome"]
  }
}

二. 插件配置(manifest.json)

以下为chrome插件开发部分常用配置(供参考):

{
  // Required
  "manifest_version": 3,  // 版本,目前有MV2和MV3
  "name": "My Extension", // 拓展名称
  "version": "versionString", // 拓展版本

  // Recommended
  "default_locale": "en", // 本地化配置,默认语言
  "description": "A plain text description",
  "icons": {...},

  // Pick one (or none)
  "browser_action": {  // 该字段表示拓展可适用于任何页面
    "default_icon": {  // 配置图标
      "16": "<image_file>",
      "48": "<image_file>",
    },
    "default_title": "hello",
    "default_popup": "<html_file>", // 配置点击插件后弹出的气泡页面
  },   
  "page_action": {...}, // 该字段便是拓展适用于匹配的页面,打开匹配的页面后拓展运行,关闭所有匹配到的页面的标签页后拓展随之关闭。其中包含字段类似于browser_action

  // Optional
  "author": "authorname<[email protected]>",
  "background": {  // 配置插件在后台运行的js代码,及其行为
    "scripts": ["<js_file1>","<js_file2>"],
    // Recommended
    "persistent": false,  // 后台运行方式,true-始终运行,false-按需运行
    // Optional
    "service_worker": "", // 离线网络代理,能够处理控制页面发送的请求
  },
  "content_scripts": [ // 定义一系列匹配规则,当URL被匹配时,自动执行js
    {
      "js": ["<js_file1>", "<js_file2>"],
      "matches": ["*//www.baidu.com/*"]   // 匹配规则
    }
  ],
  "devtools_page": "devtools.html",
  "permissions": ["tabs"] // 插件运行需要的权限
}

我的第一个chrome项目的代码如下:
manifest.json

{
// 清单文件的版本,这个必须写,而且必须是2
"manifest_version": 2,
// 插件的名称
"name": "demo",
// 插件的版本
"version": "1.0.0",
// 插件描述
"description": "简单的Chrome扩展demo",
// 图标,一般偷懒全部用一个尺寸的也没问题
"icons":
{
"16": "img/logo.jpg",
"48": "img/logo.jpg",
"128": "img/logo.jpg"
},
// 浏览器右上角图标设置,browser_action、page_action、app必须三选一
"browser_action": 
{
"default_icon": "img/logo.jpg",
// 图标悬停时的标题,可选
"default_title": "这是一个示例Chrome插件",
"default_popup": "popup.html"
},
// 当某些特定页面打开才显示的图标
/*"page_action":
{
"default_icon": "img/icon.png",
"default_title": "我是pageAction",
"default_popup": "popup.html"
},*/
// 需要直接注入页面的JS
"content_scripts": 
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
"matches": ["https://blog.csdn.net/*"],
// 多个JS按顺序注入
"js": ["custom.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["custom.css"],

"run_at": "document_end"
}


],
// 权限申请
"permissions":
[

"tabs"// 标签

]


}

custom.js

console.log(document.title);
document.querySelector('aside').innerHTML="";
document.querySelector('main').style.width="100%";

popup.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>你好.hhh</div>
</body>
</html>

标签:插件,popup,chrome,js,default,开发,action,页面
From: https://www.cnblogs.com/chenxi188/p/17525756.html

相关文章

  • 基于thinkphp开发的Telegram电报机器人系统,支持关键词回复
    系统支持多个添加机器人、支持关键词回复、支持设置按钮回复、支持个人、群、频道等的消息处理,另外支持消息定时推送。基于thinkphp开发的TG电报机器人系统,支持关键词回复后台登录地址:/admin后台账号密码:admin/123456下载地址:https://pan.saipancloud.com/s/7NRbiilGZV ......
  • 直播源码开发,js 数据的创建时间是否大于30天或相隔天数
    直播源码开发,js数据的创建时间是否大于30天或相隔天数//获取当前时间varday=newDate();//数据库的数据创建时间vartime=creationTime;//把当前时间数据库时间转换成毫秒数varstarDate=Date.parse(time);varendDate=Date.parse(day);//当前时间毫秒数减去创建时间......
  • web开发基础笔录(5)-Javascript(1)
    目录概述概述JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。......
  • api接口技术开发心得,获取1688淘宝商品详情数据,数据采集调用教程
    ​ 商品详情API接口的作用和重要性主要体现在以下几个方面:获取详细商品信息:商品详情API接口提供了获取1688和淘宝商品的完整详细信息的功能。这包括商品名称、价格、库存、规格、描述、图片、运费等。这些详细信息对于用户来说是购买决策的重要依据。提供用户购物体验:通......
  • 开发软件 --- java web 容器
    JavaWeb容器是一种运行JavaWeb应用程序的环境,提供对Servlet和JSP等技术的类库支持。以下是一些常见的JavaWeb容器:轻量级 ApacheTomca流行的开源轻量部分支持的javaweb容器。支持Servlet、JSP和WebSocket等技术。Jetty高性能的开源轻量部分支持的java......
  • 网络安全开发架构之基于规则引擎的开发架构
    原文合集地址如下,有需要的朋友可以关注本文地址合集地址规则引擎架构常见的表现形式规则引擎架构可以有多种不同的表现形式,以下是一些常见的表现形式:中心化规则引擎中心化规则引擎是指规则引擎的核心逻辑集中在一个中心服务器或平台上。该服务器负责规则的管理、执行和决策......
  • unity前后端通信 json解析 HTTP POST(BestHttp插件实现)
    1.配置请求体中的Json字符串1request_data=newRequestBodyClass();2request_data.a="Json第一个字段";3request_data.b="Json第二个字段";4stringbody=JsonUtility.ToJson(request_data);2.实例化HTTPRequest,请求头方法设置为POST,并且设置请求头中类型为json......
  • 第20课 SPI协议详解及裸机程序开发分析
    第001节_SPI协议介绍市面上的开发板很少接有SPI设备,但是SPI协议在工作中经常用到。我们开发了SPI模块,上面有SPIFlash和SPIOLED。OLED就是一块显示器。我们裸板程序会涉及两部分:用GPIO模拟SPI用S3C2440的SPI控制器我们先介绍下SPI协议,硬件框架如下:SCK:提供时钟DO:作为数据输出DI:作......
  • Solon Web 开发:三、一个简单的 Web 模板项目(或示例)
    演示web程序的常用能力:控制器、请求参数、参数校验、跳转过滤器、全局异常处理静态文件动态模板动态模板公共变量及控制器基类日志Json渲染格式控制模板下载:打包成jar,可以自启动helloworld_web_jar.zip(maven)helloworld_web_jar_gradle.zip(gradle)打包成w......
  • Solon Web 开发:四、认识请求上下文(Context)
    Handler+Context架构,是SolonWeb的基础。在Context(org.noear.solon.core.handle.Context)里可以获取:请求相关的对象与接口会话状态相关的对象与接口响应相关的对象与接口或者理解所有请求与响应相关的,都在它身上。关于架构方面,可以再看看《想法与架构笔记》1、三种获......