0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

人人都能手寫的chrome插件,幫我省了1000多塊錢

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-09-27 14:41 ? 次閱讀

在網(wǎng)購的世界里,價格波動常常讓人感到無奈?!毒〇|價?!凡寮ㄟ^定時監(jiān)控已購商品價格變化,降價自動申請京東價格保護(hù),幫我省下了不少錢。

作為一個前端開發(fā)工程師,這讓我意識到,手寫一個瀏覽器插件是一件很有趣且有意義的事。

于是,我決定嘗試自己動手,開發(fā)一個簡單的二維碼生成器插件,各位小伙伴也可參考以下步驟實現(xiàn)自己想要的插件。

一、 為什么要手寫瀏覽器插件

手寫插件有許多好處,以下是一些詳細(xì)的原因:

1.1 個性化定制

手寫插件可以根據(jù)個人需求進(jìn)行定制。市面上的插件功能可能不完全符合你的需求,而自己動手開發(fā)插件,可以精確地實現(xiàn)你想要的功能。

1.2. 解決特定問題

有時,你可能需要一個非常特定的功能,而現(xiàn)有的插件無法提供。手寫插件可以幫助你快速解決這些特定問題,提高工作效率。

1.3 增強(qiáng)安全性

使用第三方插件時,安全性是一個重要的考慮因素。自己開發(fā)插件,可以確保代碼的安全性,避免潛在的隱私泄露或惡意行為。

1.4 節(jié)省成本

雖然許多插件是免費(fèi)的,但一些高級功能需要付費(fèi)。通過手寫插件,你可以免費(fèi)獲得這些功能,同時避免不必要的開支。

總之,手寫插件不僅能帶來技術(shù)上的成長,還能在日常生活中提供實際的便利和解決方案。

二、 如何手寫瀏覽器插件

2.1 認(rèn)識插件目錄結(jié)構(gòu)

一個 Chrome 插件通常包含以下文件和目錄:

my-qrcode-plugin/
│
├── manifest.json  // 插件的配置文件,定義插件的基本信息、權(quán)限和功能。
├── background.js  // 后臺腳本,負(fù)責(zé)處理插件的邏輯,例如創(chuàng)建右鍵菜單。
├── popup.html     // 插件的彈出頁面,用戶點(diǎn)擊插件圖標(biāo)時顯示。
├── http://ttokpm.com/images/chaijie_default.png       // 插件的彈出頁面,執(zhí)行的腳本。
└── icons/         // 存放插件的圖標(biāo),建議提供 16x16、48x48 和 128x128 像素的圖標(biāo),不同大小的圖標(biāo)有不同的作用。
    ├── icon16.png
    ├── icon48.png
    └── icon128.png
    

2.2 編寫 manifest.json

manifest.json 是插件的核心配置文件:

{
 "manifest_version": 3,
 "name": "QR Code Generator",
 "version": "1.0",
 "permissions": ["contextMenus", "activeTab", "scripting"],
 "icons": {
   "16": "icons/icon16.png",
   "48": "icons/icon48.png",
   "128": "icons/icon128.png"
  },
 "background": {
 "service_worker": "background.js"
  },
 "action": {
 "default_popup": "popup.html"
  }
}

2.3 編寫 background.js

background.js 負(fù)責(zé)插件后臺的邏輯實現(xiàn):

chrome.runtime.onInstalled.addListener(() => {
 chrome.contextMenus.create({
   id: "generateQRCode",
   title: "Generate QR Code",
   contexts: ["page"]
 });
});

chrome.contextMenus.onClicked.addListener((info, tab) => {
 if (info.menuItemId === "generateQRCode") {
 const url = tab.url;
 const apiUrl = `https://api.cl2wm.cn/api/qrcode/code?text=${url}&mhid=sELPDFnok80gPHovKdI`;

 chrome.scripting.executeScript({
   target: { tabId: tab.id },
   func: showQRCode,
   args: [apiUrl]
 });
 }
});

function showQRCode(apiUrl) {
 const iframe = document.createElement('iframe');
 iframe.style.position = 'fixed';
 iframe.style.top = '50%';
 iframe.style.left = '50%';
 iframe.style.transform = 'translate(-50%, -50%)';
 iframe.style.width = '500px';
 iframe.style.height = '500px';
 iframe.style.border = 'none';
 iframe.style.zIndex = '1000'; // 確保在最上層
 iframe.src = apiUrl;

 document.body.appendChild(iframe);

 setTimeout(() => {
   iframe.remove();
 }, 5000);
}

2.4 編寫 popup.html

popup.html 是插件的用戶界面:





 
 
 QR Code Generator
 
 body {
   width: 500px;
   height: 500px;
   display: flex;
   justify-content: center;
   align-items: center;
   font-family: Arial, sans-serif;
 }

 #qrcode iframe {
   width: 500px;
   height: 500px;
   border: none;
 }
 


2.5 編寫 http://ttokpm.com/images/chaijie_default.png

http://ttokpm.com/images/chaijie_default.png 是插件的用戶界面的執(zhí)行腳本:

document.addEventListener('DOMContentLoaded', function() {
 chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
 if (tabs.length === 0) {
   console.error('No active tab found');
   return;
 }

 const url = tabs[0].url;
 const apiUrl = `https://api.cl2wm.cn/api/qrcode/code?text=${url}&mhid=sELPDFnok80gPHovKdI`;

 const iframe = document.getElementById('qrFrame');
   iframe.src = apiUrl;
 });
});

2.6 驗證插件功能

在瀏覽器上測試 Chrome 插件功能,可以通過以下步驟進(jìn)行:

2.6.1. 加載未打包的擴(kuò)展

1.打開 Chrome 瀏覽器。

2.輸入 `chrome://extensions/` 進(jìn)入擴(kuò)展管理頁面。

3.打開右上角的“開發(fā)者模式”。

4.點(diǎn)擊“加載已解壓的擴(kuò)展程序”按鈕。

5.選擇你的插件目錄(my-qrcode-plugin)。

2.6.2. 驗證功能

1. 在任意一個網(wǎng)頁中, 通過鼠標(biāo)右鍵找到菜單 Generate QR Code, 點(diǎn)擊該菜單,頁面生成一個二維碼,手機(jī)掃描二維碼即是該網(wǎng)頁,5S后二維碼消失視為驗證通過。

右鍵菜單截圖:

?

wKgZomb2U6OAPV-KAAPotSlZS3c384.png

??

二維碼生成效果圖:

wKgaomb2U6SAGSyXAAPXow_xMAU879.png

??

2. 在瀏覽器右上角選擇該插件《Generate QR Code》,在網(wǎng)頁右上角生成對應(yīng)的二維碼,二維碼不消失,視為驗證通過。

右上角插件入口截圖:

wKgZomb2U6aACXHJAAXImlSFgfw562.png

??

二維碼效果圖:

wKgaomb2U6eAQtARAAU5Ab7P90w192.png

??

2.6.3. 實時修改和刷新

1.在開發(fā)者工具中修改代碼后,可以直接保存并刷新插件或頁面以查看更改效果。

2.通過“重新加載”按鈕在擴(kuò)展管理頁面中更新插件。

通過這些步驟,你可以在瀏覽器中高效地測試和調(diào)試 Chrome 插件的功能。

三、 插件發(fā)布到 Chrome Web Store

以下的發(fā)布谷歌插件的步驟

1. 創(chuàng)建開發(fā)者賬號: 前往 [Chrome Web Store Developer Dashboard](https://chrome.google.com/webstore/developer/dashboard) 創(chuàng)建開發(fā)者賬號。

2. 打包插件: 在 Chrome 瀏覽器中,進(jìn)入擴(kuò)展程序頁面,點(diǎn)擊“打包擴(kuò)展程序”,選擇插件的根目錄進(jìn)行打包。

3. 上傳插件: 登錄開發(fā)者賬號,上傳打包后的 `.zip` 文件。

4. 填寫信息: 填寫插件的詳細(xì)信息,包括名稱、描述、截圖等。

5. 支付費(fèi)用: 支付一次性注冊費(fèi)用:5美元。

6. 提交審核: 提交插件進(jìn)行審核,審核通過后即可發(fā)布。

由于博主囊中羞澀, 就沒有支付費(fèi)用, 各位感興趣的小伙伴可以通過以上步驟嘗試去發(fā)布自己的插件,讓更多的人看到。

四、 總結(jié)

本文通過《京東價?!凡寮o我?guī)淼谋憷?,引發(fā)了個人探索瀏覽器插件的思考。 通過實現(xiàn)一個簡單的瀏覽器插件,幫助我們認(rèn)識、掌握、應(yīng)用瀏覽器插件的基本原理。更深入的知識咱們可以通過官網(wǎng)去學(xué)習(xí)。

?

最后,最重要的一點(diǎn):

歡迎評論區(qū)互動, 大家一起來找bug。

歡迎大家交流學(xué)習(xí),共同成長。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 前端
    +關(guān)注

    關(guān)注

    1

    文章

    190

    瀏覽量

    17709
  • 開發(fā)工程師
    +關(guān)注

    關(guān)注

    1

    文章

    91

    瀏覽量

    14919
收藏 人收藏

    評論

    相關(guān)推薦

    圖紙代碼完全開源!稚暉君:人人都能造人形機(jī)器人!

    SDK“開源”而大肆宣傳不同,智元機(jī)器人開源的內(nèi)容包括硬件和軟件的“一站式”技術(shù)資源,資料包大小超過1.2GB,完全可以通過圖紙和代碼自行復(fù)現(xiàn)靈犀X1機(jī)器人。 靈犀X1:人形機(jī)器人人人能造 靈犀X1在今年8月的智元機(jī)器人年度新品發(fā)布會上其實
    的頭像 發(fā)表于 10-28 06:10 ?3431次閱讀
    圖紙代碼完全開源!稚暉君:<b class='flag-5'>人人</b><b class='flag-5'>都能</b>造人形機(jī)器人!

    繪王原筆跡手寫:高度定制化手寫輸入解決方案

    在過去的數(shù)字化實踐中,手寫輸入產(chǎn)品以其便捷性和準(zhǔn)確性,成為通信、銀行、保險、教育、醫(yī)療、稅務(wù)、政務(wù)等領(lǐng)域不可或缺的工具。面對個性化業(yè)務(wù)需求,繪王提供量身定做的原筆跡手寫解決方案,助力企業(yè)在數(shù)字化轉(zhuǎn)型
    的頭像 發(fā)表于 09-28 08:01 ?177次閱讀
    繪王原筆跡<b class='flag-5'>手寫</b>:高度定制化<b class='flag-5'>手寫</b>輸入解決方案

    chrome插件新版本(v3版本)中的熱更新,即加載更新遠(yuǎn)程js的方法探索

    1 主流方案及嘗試 現(xiàn)在瀏覽器插件中,大多采用直接調(diào)用遠(yuǎn)程代碼的方式進(jìn)行熱更新,由于安全策略逐步增強(qiáng),越來越不支持熱更新了;chrome在新v3版本插件中直接給禁止了;對于v2版本則即將廢棄
    的頭像 發(fā)表于 06-14 10:19 ?705次閱讀
    <b class='flag-5'>chrome</b><b class='flag-5'>插件</b>新版本(v3版本)中的熱更新,即加載更新遠(yuǎn)程js的方法探索

    【線路板設(shè)計】詳解pcb插件特點(diǎn)

    PCB插件是在PCB設(shè)計軟件中使用的擴(kuò)展工具,用于簡化和增強(qiáng)PCB設(shè)計過程。這些插件提供了許多功能和特性,幫助工程師更快速、高效地完成電路板設(shè)計。今天捷邦小編就與大家詳細(xì)的講解pcb插件
    的頭像 發(fā)表于 05-21 17:51 ?613次閱讀

    谷歌Chrome瀏覽器新版Favicon未對齊問題獲確認(rèn)

    作為Chrome 123的升級,2023年度的Chrome Refresh采用了Material 3界面元素。然而,部分用戶對此不甚滿意,選擇在chrome://flags頁面取消這些更改。
    的頭像 發(fā)表于 04-23 10:35 ?530次閱讀

    微軟發(fā)布Windows版OneNote應(yīng)用AI手寫矯正功能

    微軟官方解釋稱,這一功能旨在優(yōu)化和調(diào)整手寫字體,使之更加整潔美觀且更具連貫性。這不僅能提升OneNote中的手寫字體可讀性,而且不會改變原始手寫字效的獨(dú)特風(fēng)格與個性化特點(diǎn),方便用戶日后再次審閱及分享。
    的頭像 發(fā)表于 04-18 10:59 ?471次閱讀

    HarmonyOS開發(fā)實例:【分布式手寫板】

    使用設(shè)備管理及分布式鍵值數(shù)據(jù)庫能力,實現(xiàn)設(shè)備之間手寫板應(yīng)用拉起及同步書寫內(nèi)容的功能。
    的頭像 發(fā)表于 04-17 21:45 ?424次閱讀
    HarmonyOS開發(fā)實例:【分布式<b class='flag-5'>手寫</b>板】

    Chrome瀏覽器新增攝像頭與麥克風(fēng)預(yù)覽功能,解決會議操作困擾

    最近發(fā)布的 Chrome 123 版本中,用戶可提前預(yù)覽攝像頭拍攝的畫面以及麥克風(fēng)的收音效果。要啟動此功能,只需在 Chrome 地址欄輸入“chrome://flags#camera-mic-preview”并按回車,然后選擇
    的頭像 發(fā)表于 04-15 11:07 ?847次閱讀

    Chrome 123穩(wěn)定版引入全新Long Animation Frames API

    早在 Chrome 116 版本中,谷歌就已經(jīng)開啟了 LoAF 的實驗性測試,如今,隨著 Chrome 123 版本的正式面世,這一新特性被廣泛應(yīng)用開來。此 API 堪稱 Long Tasks API 的升級版,主要功能在于深度探查網(wǎng)站響應(yīng)能力,幫助用戶識別主線程擁堵的真
    的頭像 發(fā)表于 03-22 14:29 ?703次閱讀

    鴻蒙實戰(zhàn)開發(fā)學(xué)習(xí):【HiView插件開發(fā)】

    Hiview是一個跨平臺的終端設(shè)備維測服務(wù)集,其中是由插件管理平臺和插件實現(xiàn)的各自功能構(gòu)成整套系統(tǒng)。 本文描述了hiview插件開發(fā)的全部流程。
    的頭像 發(fā)表于 03-12 11:52 ?1255次閱讀
    鴻蒙實戰(zhàn)開發(fā)學(xué)習(xí):【HiView<b class='flag-5'>插件</b>開發(fā)】

    162泛海微手寫板專用合封IC芯片

    泛海微推出外圍簡單的合封手寫板芯片,內(nèi)置集成MOS。162手寫板合封芯片是一款通用的手寫板擦寫自動控制芯片。162手寫板合封芯片為一款內(nèi)置升壓電路并可以自動產(chǎn)生擦寫脈沖的
    發(fā)表于 03-06 19:27 ?0次下載

    蘋果公司榮獲日歷項手寫技術(shù)專利,優(yōu)化Apple Pencil操作體驗

    研究發(fā)現(xiàn),目前通過手寫筆或手指都能完成創(chuàng)建日歷項的工作,然而手寫筆輸入操作繁瑣且效率低下,因而日常生活中采用手指輸入方式。蘋果公司此次專利旨在設(shè)計一種更高效的觸控筆用戶界面。
    的頭像 發(fā)表于 02-27 14:26 ?472次閱讀

    從瀏覽器原理解析Chrome常見插件的實現(xiàn)思路

    近期Chrome進(jìn)程架構(gòu) 從圖中可以看出,最新的 Chrome 瀏覽器包括:1 個瀏覽器主進(jìn)程、1 個 GPU 進(jìn)程、1 個網(wǎng)絡(luò)進(jìn)程、多個渲染進(jìn)程和多個插件進(jìn)程。
    的頭像 發(fā)表于 12-08 14:25 ?751次閱讀
    從瀏覽器原理解析<b class='flag-5'>Chrome</b>常見<b class='flag-5'>插件</b>的實現(xiàn)思路

    Chrome支持運(yùn)行Kotlin、Java等GC編程語言

    谷歌 Chrome 開發(fā)者博客官宣:Chrome 已默認(rèn)啟用 WebAssembly 垃圾回收 (WasmGC) 功能 —— 能夠?qū)⒕哂?GC 的編程語言編譯為 WebAssembly (Wasm)。
    的頭像 發(fā)表于 11-24 11:43 ?686次閱讀

    什么是插件電阻?選擇插件電阻需要考慮哪些因素呢?

    什么是插件電阻?選擇插件電阻需要考慮哪些因素呢? 插件電阻(也稱為電子電阻或電路電阻)是一種用于限制電流流動的電子元件。它們通常由一個或多個電阻器組件構(gòu)成,用來控制和調(diào)節(jié)電子電路中的電流和電壓。
    的頭像 發(fā)表于 11-23 09:13 ?1433次閱讀