【JS】認識并實現一個chrome擴展程序

😏★,°:.☆( ̄▽ ̄)/$:.°★ 😏
這篇文章主要介紹chrome擴展程序。
學其所用,用其所學。——梁啟超
歡迎來到我的博客,一起學習,共同進步。
喜歡的朋友可以關注一下,下次更新不迷路🥞

文章目錄

    • :smirk:1. 擴展介紹
    • :blush:2. 環境安裝與配置
    • :satisfied:3. 應用示例

😏1. 擴展介紹

Chrome擴展程序(Chrome Extensions)是為Google Chrome瀏覽器設計的小型軟件程序,用于增強瀏覽器的功能或提供額外的服務。它們基于HTML、JavaScript和CSS技術開發,可通過Chrome網上應用商店(Chrome Web Store)安裝。

核心功能與特點

  • 定制瀏覽體驗:擴展程序可以修改網頁內容、添加新功能或簡化操作流程。
  • 輕量級設計:擴展程序通常體積小巧,運行時不占用過多系統資源。
  • 權限可控:安裝時會明確告知所需權限,用戶可自主管理。
  • 跨設備同步:登錄Google賬號后,擴展程序可在不同設備間同步。

常見類型

  • 生產力工具:如廣告攔截器(uBlock Origin)、密碼管理器(LastPass)。
  • 開發者工具:如JSON格式化工具、API測試插件(Postman)。
  • 社交增強:如社交媒體快捷分享按鈕。
  • 網頁美化:如暗黑模式插件(Dark Reader)。

😊2. 環境安裝與配置

下面就自己寫一個chrome擴展,安裝直接在chrome瀏覽器加載即可。

另外,也可以打包自己的擴展程序為crx
在這里插入圖片描述

😆3. 應用示例

下面給出一個時間&積分計算器的示例:
在這里插入圖片描述
包含以下代碼文件:
manifest.json

{"manifest_version": 3,"name": "Hello World Extension","version": "1.0","description": "A simple Chrome extension example","icons": {"16": "icons/test.png","48": "icons/test.png","128": "icons/test.png"},"action": {"default_popup": "popup.html","default_icon": "icons/test.png"},"permissions": []
}

popup.html

<!DOCTYPE html>
<html>
<head><title>Time & Points Tracker</title><link rel="stylesheet" href="popup.css">
</head>
<body><div class="container"><div class="funnel"><h2>Time Left</h2><div id="timeLeft">--:--:--</div></div><div class="points"><h2>Points Earned</h2><div id="pointsEarned">0</div></div></div><script src="popup.js"></script>
</body>
</html>

popup.js

// 時間段
const WORK_START_HOUR = 9;
const WORK_END_HOUR = 18;
const WORK_END_MINUTE = 30;
const TOTAL_POINTS = 10000;function updateDisplay() {const now = new Date();// --- 計算剩余時間 ---let endTime = new Date();endTime.setHours(WORK_END_HOUR, WORK_END_MINUTE, 0, 0);// 超出則顯示 00:00:00if (now >= endTime) {document.getElementById("timeLeft").textContent = "00:00:00";document.getElementById("pointsEarned").textContent = TOTAL_POINTS;return;}// 計算剩余時間 HH:MM:SSconst timeLeftMs = endTime - now;const hours = Math.floor(timeLeftMs / (1000 * 60 * 60));const minutes = Math.floor((timeLeftMs % (1000 * 60 * 60)) / (1000 * 60));const seconds = Math.floor((timeLeftMs % (1000 * 60)) / 1000);document.getElementById("timeLeft").textContent = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;// --- 計算已獲得積分 ---let startTime = new Date();startTime.setHours(WORK_START_HOUR, 0, 0, 0);// 未開始積分 = 0if (now < startTime) {document.getElementById("pointsEarned").textContent = "0";return;}// 計算總時長和已過去時長const totalWorkTimeMs = endTime - startTime;const elapsedTimeMs = now - startTime;// 積分計算const points = Math.floor((elapsedTimeMs / totalWorkTimeMs) * TOTAL_POINTS);document.getElementById("pointsEarned").textContent = Math.min(points, TOTAL_POINTS);
}// 初始加載時更新
updateDisplay();// 每秒刷新一次
setInterval(updateDisplay, 1000);

popup.css

body {width: 200px;padding: 15px;font-family: Arial, sans-serif;text-align: center;background: #f5f5f5;
}.container {display: flex;flex-direction: column;gap: 15px;
}.funnel, .points {background: white;padding: 10px;border-radius: 8px;box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}h2 {margin: 0 0 10px 0;font-size: 14px;color: #555;
}#timeLeft {font-size: 20px;font-weight: bold;color: #4285f4;
}#pointsEarned {font-size: 20px;font-weight: bold;color: #0f9d58;
}

請添加圖片描述

以上。

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

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

相關文章

jeecgboot項目遇見的一些問題:

1.當你想修改項目的標題&#xff0c;前端將jeecgboot改成你想要的標題的時候&#xff0c;去前端的.env文件中進行修改。圖1 修改標題根據路徑找到文件&#xff0c;將網站標題改成自己需要的就可以正常顯示了。圖2 顯示前圖3 顯示后2.在動態數組中&#xff0c;如果你知道數組需要…

項目里程碑設定有哪些方法

要科學設定項目里程碑&#xff0c;可采用以下幾種方法&#xff1a;基于項目階段劃分法、關鍵交付物導向法、依賴關系鏈分析法、時間驅動法、風險節點識別法、目標成果導向法、資源約束分析法、客戶驗收節點設定法。其中&#xff0c;關鍵交付物導向法尤為實用。該方法以項目中必…

英偉達顯卡驅動怎么更新 詳細步驟教程

英偉達顯卡驅動程序對于電腦的圖形性能至關重要&#xff0c;它能確保顯卡在游戲、設計、視頻渲染等方面發揮最大性能。如果驅動過舊&#xff0c;可能會導致游戲運行不暢、軟件不兼容&#xff0c;甚至系統出現錯誤。因此&#xff0c;定期更新英偉達顯卡驅動非常必要。下面將為大…

基于單片機智能拐杖/導盲杖/老人防摔倒設計

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽 概述 該設計針對老年人及行動不便人群的需求&#xff0c;開發了一款集成單片機控制的智能拐杖。拐杖采…

Node.js完整安裝配置指南(包含國內鏡像配置)

Node.js完整安裝配置指南&#xff08;包含國內鏡像配置&#xff09; 一、Node.js安裝 方法1&#xff1a;使用Chocolatey安裝&#xff08;推薦&#xff09; # 安裝最新LTS版本 choco install nodejs# 或安裝指定版本 choco install nodejs --version20.11.0方法2&#xff1a;…

AI硬件 - AMD顯卡架構演進及產品線

目錄 一、AMD顯卡架構演進總結 二、典型AMD AI顯卡歷代型號參數對比表 關鍵參數說明: 三、AMD 特供中國AI顯卡產品線全覽 1. 企業級Instinct系列(數據中心/科研) 2. 消費級AI加速顯卡(開發/本地推理) 四、與NVIDIA顯卡的AI性能對比 關鍵指標實測數據 五、模型框架…

論文閱讀-Gated CRF Loss for Weakly Supervised Semantic Image Segmentation

文章目錄1 背景2 模塊2.1 部分交叉熵損失2.2 弱標簽&#xff08;線/點&#xff09;2.3 Gated CRF Loss3 效果3.1 總體效果3.2 消融實驗4 總結參考文獻1 背景 全監督的語義分割需要對全圖進行完全而精確的標注。當需要標注的目標在圖像中較多&#xff0c;又或形狀不規則&#x…

零墨云A4mini打印機設置電腦通過局域網絡進行打印

文檔時間&#xff1a;2025年8月 1.演示環境 操作系統版本&#xff1a;Windows11 打印機版本&#xff1a;零墨云A4mini 這款打印機打印的方式有藍牙、遠程云和局域網&#xff0c;這里演示的是電腦通過局域網打印 通過電腦版局域網(這個局域網是網絡可達)打印之前&#xff0c…

ESP8266 入門(第 3 部分):使用 Arduino IDE 對 ESP8266 進行編程并刷新其內存

使用 Arduino IDE 對 ESP8266 進行編程并刷新其內存 這是我們之前 ESP 教程的延續的第三個教程,其中我們將學習使用 Arduino IDE(不使用 Arduino)對 ESP8266 進行編程和燒錄 ESP8266。在前面的教程中,我們介紹了 WiFi 收發器ESP8266簡介以及將 AT 命令與 ESP8266 結合使用。…

如何成功初始化一個模塊

一、如何保證成功初始化一個模塊&#xff08;以 UART 為例&#xff09;要成功初始化一個模塊&#xff0c;請遵循以下步驟&#xff1a;在圖形化界面中&#xff0c;首先配置外設模塊。緊接著&#xff0c;配置使用到的外設模塊的引腳&#xff08;這一點很重要&#xff0c;容易忘記…

Hive 存儲管理測試用例設計指南

一、測試范圍界定Hive 存儲管理測試主要覆蓋以下核心模塊&#xff1a;內部表 / 外部表存儲特性驗證分區表 / 分桶表管理功能測試存儲格式兼容性測試&#xff08;TextFile/ORC/Parquet 等&#xff09;數據加載與導出機制驗證元數據與 HDFS 存儲一致性校驗異常場景與邊界條件處理…

智芯微ZX6N60A—N溝道增強型功率MOSFET

主要特征&#xff1a; ID 6A Vdss 600V RDSON-typ &#xff08;VGS10V&#xff09; 1.4Ω特點&#xff1a; ? 快速切換 ? 低導通電阻 ? 低門費 ? 100%單脈沖雪崩能量測試應用范圍&#xff1a; ? 適配器和充電器的電源開關電路。芯片數據 ? 外殼&#xff1a;模壓塑料 …

latex|算法algorithm宏包和注意事項

LaTeX 中 algorithm 環境完整指南 在科研論文里&#xff0c;寫清楚算法步驟通常需要用到 偽代碼環境。最常見的選擇有兩個包&#xff1a; algorithm2e —— 功能最強大&#xff0c;適合期刊/學位論文algorithmicx algpseudocode —— 更靈活、可定制&#xff0c;常用于會議模板…

純Qt結合ffmpeg實現本地攝像頭采集/桌面采集/應用程序窗口采集/指定采集幀率和分辨率等

一、前言說明 ffmpeg的功能真的是包羅萬象&#xff0c;除了基本的編解碼&#xff0c;還有個專門的avdevice模塊用來對本地設備的采集支持&#xff0c;最開始用到ffmpeg采集本地攝像頭的緣由&#xff0c;還不是因為Qt不給力&#xff0c;Qt5開始有個qcamera類&#xff0c;但是只…

【論文筆記】Multi-Agent Based Character Simulation for Story Writing

論文信息 論文標題&#xff1a; Multi-Agent Based Character Simulation for Story Writing - In2Writing 2025 論文作者&#xff1a; Tian Yu, Ken Shi, Zixin Zhao, Gerald Penn 論文鏈接&#xff1a; https://aclanthology.org/2025.in2writing-1.9/ 論文領域&#xff1a;…

GaussianLSS

背景 BEV感知能夠聚合多個傳感器輸入得到統一的空間表征&#xff0c;在3D感知、下游應用以及跨模態融合中發揮重要作用。現有的BEV感知分為2D反投影&#xff08;LSS&#xff09;以及3D投影&#xff08;BEVFormer&#xff09;&#xff0c;其中3D投影依賴于3D體素的投影&#xff…

衛生許可證識別技術:通過OCR與NLP實現高效合規管理,提升審核準確性與效率

在食品安全、公共衛生管理日益重要的今天&#xff0c;衛生許可證成為企業合規經營的關鍵憑證。傳統人工審核方式效率低、易出錯&#xff0c;而衛生許可證識別技術應運而生&#xff0c;正逐步革新監管與合規流程。下面深入解析這項技術的核心要素。核心技術原理衛生許可證識別本…

【habitat學習一】Habitat-Lab 配置鍵文檔詳解(CONFIG_KEYS.md)

該文件是 Habitat-Lab&#xff08;Facebook Research 開發的 Embodied AI 模擬框架&#xff09;的核心配置文檔&#xff0c;詳細定義了 Habitat 配置系統&#xff08;基于 OmegaConf&#xff09;中所有可配置參數的層級結構、默認值、取值范圍及功能說明。以下內容嚴格按文件結…

AI-調查研究-55-機器人 百年進化史:從Unimate到人形智能體的技術躍遷

點一下關注吧&#xff01;&#xff01;&#xff01;非常感謝&#xff01;&#xff01;持續更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持續更新中&#xff01;&#xff08;長期更新&#xff09; AI煉丹日志-31- 千呼萬喚始出來 GPT-5 發布&#xff01;“快的…

【python實用小腳本-190】Python一鍵刪除PDF任意頁:輸入頁碼秒出干凈文件——再也不用在線裁剪排隊

Python一鍵刪除PDF任意頁&#xff1a;輸入頁碼秒出干凈文件——再也不用在線裁剪排隊 PDF刪頁, 零依賴腳本, 命令行秒用, 小白神器, 瑞士軍刀 故事開場&#xff1a;一把瑞士軍刀救了你 周一早高峰&#xff0c;老板發來 200 頁 PDF&#xff1a; “把第 18、25、37 頁刪掉&#x…