快速開發 Chrome插件

什么是 Chrome 插件

Chrome 插件程序是一種用于增強 Google Chrome 瀏覽器功能的小型軟件應用程序。它們可以幫助用戶自定義瀏覽體驗、添加新功能、集成外部服務以及自動化任務等。擴展程序使用 HTML、CSS 和 JavaScript 編寫,利用 Chrome 提供的 API 來與瀏覽器及其內容進行交互。

在平時的開發工作中,可以通過開發一些小的功能插件來提高我們的工作效率。開發 Chrome 插件非常簡單,一個配置文件和幾個 JS 就可以完成,本文將實現一個簡單的插件,點擊按鈕修改百度輸入框背景色。插件主要包括一下兩個文件

  • manifest.json:插件定義
  • default_popup: 入口文件

添加manifest.json

manifest.json 文件插件的定義文件

{"manifest_version": 3,"name": "Highlight Input Box","version": "1.0","description": "A simple Chrome extension to highlight input boxes on the current page","action": {"default_popup": "popup.html","default_icon": {"16": "icon.png","48": "icon.png","128": "icon.png"}},"permissions": ["activeTab","scripting"]
}

入口頁面 popup.html

彈出頁面是指當點擊插件時彈出的 HTML 頁面,頁面引入一個 JS 并添加了一個按鈕。


<!DOCTYPE html>
<html>
<head><title>Highlight Input Box</title><script src="popup.js"></script>
</head>
<body><button id="highlightInputs">Highlight Input Boxes</button>
</body>
</html>

創建 popup.js

獲取當前活動窗口并執行腳本:

document.addEventListener('DOMContentLoaded', function() {const button = document.getElementById('highlightInputs');console.log(button)if (button) {button.addEventListener('click', function() {// 獲取當前活動的標簽頁并執行內容腳本chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {chrome.scripting.executeScript({target: { tabId: tabs[0].id },files: ['contentScript.js']}, () => {if (chrome.runtime.lastError) {console.error(chrome.runtime.lastError);} else {console.log('Content script injected');}});});});} else {console.error('Button with id "highlightInputs" not found.');}
});

創建contentScript.js

contentScript.js 主要是修改背景的邏輯:

// contentScript.js
function highlightInputBoxes() {const inputBoxes = document.querySelectorAll('input[type="text"], input[type="search"], textarea');inputBoxes.forEach(input => {input.style.backgroundColor = 'yellow';});
}// 執行高亮函數
highlightInputBoxes();

運行插件

進入擴展管理,打開開發者模式并導入剛剛創建的目錄
在這里插入圖片描述
點擊按鈕并查看運行效果
在這里插入圖片描述
打開監控彈窗,可以查看插件的 log 日志
在這里插入圖片描述

總結

開發簡單的 Chrome 插件速度很快,定義好配置文件和入口文件,基本框架就完成了,之后就是開發插件的邏輯了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14140.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14140.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14140.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

18.分布式監控zabbix-proxy

zabbix proxy 使用場景: 監控遠程區域設備監控本地網絡不穩定區域當 zabbix 監控上千設備時,使用它來減輕 server 的壓力簡化分布式監控的維護 環境規劃&#xff1a; zabbix-server&#xff1a;外網IP地址192.168.111.66 zabbix-proxy:外網IP地址192.168.111.11 內網IP地址…

AI工具推薦:提升工作效率與生活質量

有哪些好用&#xff0c;且國內可用的AI工具&#xff1f; 副本 在AI大發展的年代&#xff0c;還有人在工作、生活中沒有使用過AI嗎&#xff1f; 今天為大家推薦幾款國內可用、好用的AI工具&#xff0c;不論是自媒體文案寫作、打工人匯報PPT、還是論文、公文寫作&#xff0c;總…

設計系統采購與安裝:乙級資質申請的技術準備

在設計系統采購與安裝方面&#xff0c;為乙級資質申請所做的技術準備涉及多個方面。以下是一些關鍵的技術準備事項&#xff1a; 明確技術需求&#xff1a;首先&#xff0c;需要明確乙級資質申請所需的技術系統類型和規格。這可能包括但不限于設計軟件、工程管理系統、項目管理系…

【Linux】之【Get√】查看linux CPU 架構 ---- amd64、x86、x86_64、arm64

關于Linux軟件下載時&#xff1a;amd64、x86、x86_64、arm64 的說明 archuanme -alscpu

【設計模式深度剖析】【2】【創建型】【工廠方法模式】

&#x1f448;?上一篇:單例模式 | 下一篇:抽象工廠模式&#x1f449;? 目錄 工廠方法模式概覽工廠方法模式的定義英文原話直譯 工廠方法模式的4個角色抽象工廠&#xff08;Creator&#xff09;角色具體工廠&#xff08;Concrete Creator&#xff09;角色抽象產品&#x…

關于光照模型

關于光照模型 早期學習筆記&#xff0c;轉載自早期Excel。 存在大量格式錯誤、可讀性非常低&#xff0c;建議等待作者修復后閱讀、或者作為查找性材料使用。 中文名英文名/縮寫說明長什么樣蘭伯特光照模型Lambert Lighting1.蘭伯特反射(Lambert)是最常見的一種漫反射&#x…

iptables防火墻【其二 實驗篇】

保存&#xff0c;還原規則 防火墻規則的備份和還原 導出&#xff08;備份&#xff09;所有表的規則 iptables-save > /opt/ipt.txt 導入&#xff08;還原&#xff09;規則 iptables-restore < /opt/ipt.txt 將iptables規則文件保存在 /etc/sysconfig/iptables 中&#xf…

亞馬遜賣家賬號注冊復雜嗎?需要什么輔助工具嗎?

在當今數字化的商業世界中&#xff0c;亞馬遜作為全球最大的電商平臺之一&#xff0c;吸引著無數的賣家和買家。對于想要進入亞馬遜銷售市場的賣家來說&#xff0c;首先要完成的一項重要任務就是注冊亞馬遜賣家賬號。本文將詳細介紹亞馬遜注冊的步驟、所需時間&#xff0c;以及…

LIMS系統能解決實驗室管理的哪些痛點

LIMS&#xff08;Laboratory Information Management System&#xff0c;實驗室信息管理系統&#xff09;在解決實驗室管理的痛點方面發揮著重要作用。以下是LIMS系統能夠解決的一些主要痛點&#xff1a; 一、人工介入大量重復性工作 LIMS系統能夠自動化處理實驗室中的許多重復…

[深度學習]基于yolov8+bytetrack+pyqt5實現車輛進出流量統計+車輛實時測速實現

以前使用過yolov5deepsort實現過車輛進出流量統計車輛實時測速&#xff0c;可以看我往期視頻&#xff0c;這回改成yolov8bytetrack實現&#xff0c;實時性更好&#xff0c;原理和原來一樣。車流量進出統計車速測量優點&#xff1a; 使用目標檢測算法考慮bbox抖動&#xff0c;解…

C-數據結構-單向鏈表(帶頭節點)

單向鏈表帶頭節點&#xff08;head&#xff09;&#xff08;數據域&#xff0c;指針域&#xff09; 隨機訪問性比較差 但是插入刪除操作較為簡單。 list.h #ifndef LIST_H__ #define LIST_H__typedef int datatype;typedef struct node_st {datatype data;struct node_st *ne…

將富文本編輯器中的H標簽處理成樹形結構,支持無限層級

做富文本編輯器時&#xff0c;需要將文本里的標題整理成樹形數據&#xff0c; // 這里是數據結構 const data [{"id": "hkyrq2ndc-36yttda0lme00","text": "阿薩德阿薩德阿薩","level": 1,"depth": 1,},{"…

Window Linux 權限提升

#基礎點&#xff1a; 0、為什么我們要學習權限提升轉移技術&#xff1a; 簡單來說就是達到目的過程中需要用到它 心里要想著我是誰 我在哪 我要去哪里 1、具體有哪些權限需要我們了解掌握的&#xff1a; 后臺權限&#xff0c;數據庫權限&#xff0c;Web權限&#xff0c;用戶權…

【VTKExamples::Texture】第六期 TextureThreshold

很高興在雪易的CSDN遇見你 VTK技術愛好者 QQ:870202403 公眾號:VTK忠粉 前言 本文分享VTK樣例TextureThreshold,并解析接口vtkTexture,希望對各位小伙伴有所幫助! 感謝各位小伙伴的點贊+關注,小易會繼續努力分享,一起進步! 你的點贊就是我的動力(^U^)ノ~Y…

127.數據異構方案

文章目錄 前言一、數據異構的常用方法1. 完整克隆2. MQ方式3. binlog方式 二、MQ與Binlog方案實現MQ方式binlog方式注意點 三、總結 前言 何謂數據異構&#xff1a;把數據按需&#xff08;數據結構、存取方式、存取形式&#xff09;異地構建存儲。比如我們將DB里面的數據持久化…

Android 安全補丁介紹

Android 安全補丁介紹 每月安全補丁更新&#xff1a;https://source.android.com/docs/security/bulletin CEV 全稱&#xff1a; Common Vulnerabilities and Exposures (CVE) 常見漏洞和暴露 (CVE) 安全補丁版本查看&#xff1a;設置&#xff0c;關于手機&#xff0c;Andro…

前端基礎入門三大核心之HTML篇:無序列表的深度探索

前端基礎入門三大核心之HTML篇&#xff1a;無序列表的深度探索 一、無序列表基礎概念與作用1.1 什么是無序列表&#xff1f;1.2 無序列表的作用 二、基本用法與代碼示例2.1 最簡單的無序列表2.2 添加自定義樣式 三、進階應用與技巧3.1 列表嵌套3.2 利用CSS實現復雜布局3.3 安全…

云和恩墨海外首秀在吉隆坡召開的2024中國智能科技與文化展覽會

作為中馬建交50周年官方重點推薦的活動之一&#xff0c;2024中國智能科技與文化展覽會&#xff08;第四屆&#xff09;于5月20至21日在毗鄰吉隆坡雙子塔的吉隆坡國際會展中心舉辦。本次展覽會獲得馬來西亞科學技術創新部、馬來西亞通訊部、中國駐馬來西亞大使館和馬來西亞中華總…

【Linux學習】進程地址空間與寫時拷貝

文章目錄 Linux進程內存布局圖&#xff1a;內存布局的驗證 進程地址空間寫時拷貝 Linux進程內存布局圖&#xff1a; 地址空間的范圍&#xff0c;在32位機器上是2^32比特位,也就是[0,4G]。 內存布局的驗證 代碼驗證內存布局&#xff1a; 驗證代碼&#xff1a; #include<s…

linux系統安全加固

目錄 1、賬戶安全基本措施 1&#xff09;系統賬戶清理 2&#xff09;密碼安全控制 3&#xff09;命令歷史限制 2、用戶切換及提權 1&#xff09;使用 su命令切換用戶 2&#xff09;使用sudo機制提升權限 3、系統引導和安全登錄控制 1&#xff09;開機安全控制 2&…