Chrome 浏览器 Manifest V3 版本中 scripting API 解析

本文详细介绍了Chrome浏览器ManifestV3版本中的scriptingAPI,包括所需权限、manifest配置、注入脚本和CSS的方法,以及各种类型的定义和API方法如executeScript、getRegisteredContentScripts等的使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Chrome 浏览器 Manifest V3 版本中 scripting API 解析

chrome.scripting

使用 chrome.scripting API 在不同上下文中执行脚本。

可以使用 chrome.scripting APIJavaScriptCSS 注入网站。

一、所需权限

  • scripting

二、Manifest 配置

使用 chrome.scripting API,需要在 manifest.json 中声明 scripting 权限,以及要向其注入脚本的网页的主机权限。使用 host_permissions 关键字或 activeTab 权限。

{
   
  "name": "Scripting Extension",
  "manifest_version": 3,
  "permissions": ["scripting", "activeTab"],
}

三、注入

  • 使用 target 参数指定要向其注入 JavaScriptCSS 的目标。
  • 唯一的必填字段是 tabId

1. 注入脚本

// 获取 tab ID 
function getTabId() {
     }
// 注入脚本
chrome.scripting.executeScript({
   
  target : {
   tabId : getTabId()},
  files : [ "script.js" ],
}).then(() => console.log("script injected"));

2. 注入代码

function getTabId() {
    ... }
function getUserColor() {
    ... }

function changeBackgroundColor() {
   
  document.body.style.backgroundColor = getUserColor();
}

chrome.scripting.executeScript({
   
  target : 
### 创建和开发 Chrome 扩展 V3 教程 #### 项目结构设置 为了创建一个新的 Chrome 扩展程序版本 3 (MV3),开发者应当先建立一个基础文件夹来容纳所有的资源文件。通常情况下,这个目录会包含 `manifest.json` 文件作为扩展的核心配置文档[^1]。 ```json { "manifest_version": 3, "name": "My Extension", "version": "1.0", "description": "A simple example of a Manifest V3 extension.", "permissions": [ "activeTab" ], "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html" } } ``` 此 JSON 对象定义了扩展的名字、描述和其他必要的权限声明;它还指定了后台脚本和服务工作线程的位置以及弹出窗口的内容页面路径。 #### 编写服务工作者 Manifest V3 推广使用 Service Workers 来替代传统的背景页。这允许更高效的内存管理和更好的性能表现。下面是一个简单的 service worker 脚本例子: ```javascript // background.js chrome.runtime.onInstalled.addListener(() => { console.log(&#39;Extension installed&#39;); }); chrome.action.onClicked.addListener((tab) => { chrome.scripting.executeScript({ target: { tabId: tab.id }, files: [&#39;content.js&#39;] }); }); ``` 这段代码监听安装事件并记录一条消息到控制台;同时也处理当用户点击浏览器操作按钮时触发的动作,向当前标签注入内容脚本。 #### 构建用户界面 对于大多数交互式的 Chrome 扩展来说,提供给用户的图形化接口是非常重要的组成部分之一。可以利用 HTML 和 CSS 来构建这些 UI 组件。这里给出 popup 页面的一个简单实例: ```html <!-- popup.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Popup</title> <style> body { font-family: Arial; padding: 10px;} button { display:block;width:100%;margin-top:5px;padding:.7em;text-align:center;background-color:#4CAF50;color:white;border:none;border-radius:4px;cursor:pointer;font-size:16px;} </style> </head> <body> <h2>Hello from Popup!</h2> <button id="clickMe">Click Me</button> <script src="popup.js"></script> </body> </html> ``` 关联的 JavaScript 可能如下所示: ```javascript document.getElementById(&#39;clickMe&#39;).addEventListener(&#39;click&#39;, () => { alert(&#39;Button was clicked!&#39;); }); ``` 上述代码片段展示了如何通过内联样式表美化网页布局,并且绑定了按钮点击事件处理器以响应用户输入行为。 #### 测试与调试 完成编码之后,在本地环境中加载未打包的扩展来进行初步的功能验证非常重要。打开 Chrome 浏览器,进入 `chrome://extensions/` 地址栏位置,启用右上角的“开发者模式”,然后选择“加载已解压的扩展”。最后按照提示选取之前准备好的文件夹即可成功部署自定义插件供进一步测试之用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gqkmiss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值