国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何開發(fā)一個(gè)chrome瀏覽器插件

這篇具有很好參考價(jià)值的文章主要介紹了如何開發(fā)一個(gè)chrome瀏覽器插件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

前言

chrome擴(kuò)展程序

文件結(jié)構(gòu)

manifest.json

html和css

js

加載插件

調(diào)試

總結(jié)


前言

當(dāng)前,chrome瀏覽器早已成為占據(jù)最大的市場(chǎng)份額,也是綜合體驗(yàn)最好的瀏覽器,開發(fā)人員使用的瀏覽器基本都以它為主。

我在使用chrome的過程中,積累增加了很多書簽,最多的時(shí)候接近上千個(gè),后續(xù)慢慢清退了一些。有一次在查看清理這些書簽時(shí),發(fā)現(xiàn)有些不太直觀,于是就想著自己開發(fā)一個(gè)簡(jiǎn)單的chrome插件,用于時(shí)時(shí)統(tǒng)計(jì)這些書簽。

這款插件也比較簡(jiǎn)單,功能有以下幾個(gè):統(tǒng)計(jì)總書簽數(shù)、統(tǒng)計(jì)每個(gè)文件夾里的書簽數(shù)量、統(tǒng)計(jì)常用技術(shù)站點(diǎn)的書簽數(shù)量、最新增加的書簽、最早增加的書簽等。

具體的展示圖如下:

如何開發(fā)一個(gè)chrome瀏覽器插件

通過這個(gè)擴(kuò)展插件,我隨時(shí)了解自己增加的書簽,并進(jìn)行學(xué)習(xí)后再清退一波。

所以,本文將通過這個(gè)簡(jiǎn)單的插件,介紹下如何開發(fā)一款chrome插件。

chrome擴(kuò)展程序

chrome插件又稱擴(kuò)展程序,主要基于前端技術(shù)開發(fā),用于擴(kuò)展瀏覽器功能的一類軟件程序,可以加載在chrome瀏覽器上運(yùn)行。

在瀏覽器里也能打開擴(kuò)展程序管理界面,查看到當(dāng)前瀏覽器里安裝的所有擴(kuò)展程序。

擴(kuò)展程序除了支持基本的前端WebAPI和JS-API以外,還擁有一些其他能力,如瀏覽器窗口、tab標(biāo)簽頁、右鍵菜單、開發(fā)者工具、歷史記錄、下載請(qǐng)求、書簽等等操作處理。這些對(duì)應(yīng)的功能都有自己的chrome對(duì)象來處理,比如書簽就會(huì)使用到? chrome.bookmarks 對(duì)象,它用于專門處理書簽相關(guān)的數(shù)據(jù)和操作。其他的還有諸如 `chromes.tabs` tab標(biāo)簽對(duì)象、`chromes.history` 歷史記錄對(duì)象等等,很多個(gè)為擴(kuò)展程序提供的專用API。

chrome擴(kuò)展程序有兩種:

  • 彈出窗口:點(diǎn)擊按鈕后有彈出窗口頁面,可用于交互操作。
  • 后臺(tái)程序:常駐在后臺(tái)運(yùn)行的腳本程序,隨瀏覽器的關(guān)閉而關(guān)閉。

用戶界面一般也有兩種:

  • 瀏覽器按鈕,Browser Actions,附著于瀏覽器整體的功能。
  • 頁面按鈕,Page Actions,附著于單獨(dú)標(biāo)簽頁面的功能,在特定的頁面上才能使用。

本文的示例,書簽插件就是用來整理書簽的一個(gè)瀏覽器按鈕性質(zhì)的彈出窗口,下面將完整介紹這個(gè)擴(kuò)展程序。

文件結(jié)構(gòu)

首先,看一下該書簽插件的文件目錄結(jié)構(gòu):

如何開發(fā)一個(gè)chrome瀏覽器插件

通過上圖,可以看到,文件結(jié)構(gòu)比較簡(jiǎn)單:

  • manifest.json:插件的資源和功能配置文件
  • popup.html:插件窗口頁面入口文件,彈窗頁面
  • bookmarks.js:對(duì)應(yīng)功能處理的js代碼
  • popup.css:css代碼
  • images/icon.png:圖標(biāo)資源,用于配置插件程序和按鈕圖標(biāo)

這幾個(gè)文件是開發(fā)chrome插件所需要的最基本的文件,其他的還可以使用諸如 locale國(guó)際化資源文件、模塊文件等等。

由于我們的書簽插件功能較簡(jiǎn)單,所以使用這幾個(gè)基本文件就可以了。

manifest.json

manifest.json 配置文件,用于提供插件的基本信息,如版本、圖標(biāo)、標(biāo)題、入口文件等等,如下所示,即為書簽插件的基本配置。

{
? "manifest_version": 3,
? "version": "2.0",
? "name": "mybookmarks",
? "description": "a chrome extension for bookmarks",
? "icons": {
? ? "128": "images/icon.png",
? ? "16": "images/icon.png"
? },

? "action": {
? ? "default_title": "書簽概覽",
? ? "default_popup": "popup.html"
? },
? "permissions": [
? ? "bookmarks"
? ],

? "host_permissions": [
? ? "http://*/*",
? ? "https://*/*"
? ]
}

這里使用了manifest V3版本,相比較V2版本:

  • 增加了 action,取代之前的 browser_action?和 page_action
  • content_security_policy?配置有所變化,V3使用對(duì)象類型,取代V2的字符串
  • 增加了 host_permissions?專門處理主機(jī)權(quán)限,不再糅雜入 permissions?中
  • V3支持原生的 Promise,以及 async/await
  • V3不允許訪問遠(yuǎn)程js或wasm文件
  • V3增加 declarativeNetRequestAPI?處理網(wǎng)絡(luò)請(qǐng)求
  • V3的 Background Scripts?強(qiáng)制使用 Service Workers

從書簽插件的配置可以看到:

  • 插件版本、名稱、描述信息。
  • 插件的圖標(biāo),引用自文件中的 images/icon.png,自定義一個(gè)合適的圖片資源,但不支持SVG圖片。
  • 插件在瀏覽器上的按鈕標(biāo)題,鼠標(biāo)移動(dòng)到按鈕上面時(shí)會(huì)顯示。
  • 插件的彈窗入口頁面文件,popup.html。
  • 插件權(quán)限配置,需要處理 bookmarks?瀏覽器書簽。

如何開發(fā)一個(gè)chrome瀏覽器插件

上圖展示的是書簽插件在瀏覽器上的按鈕位置,通過 manifest.json?文件配置的 icon?圖標(biāo)和 default_title?鼠標(biāo)hover描述。

html和css

插件的html文件,設(shè)置彈窗的頁面結(jié)構(gòu),和一般的前端html頁面一樣,添加頁面標(biāo)簽元素、引入js和css文件等等。

基本代碼如下:

<!doctype html>
<html lang="zh-CN">
? <head>
? ? <meta charset="utf-8">
? ? <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
? ? <title>書簽概覽</title>
? ? <link rel="stylesheet" type="text/css" type href="./popup.css"></link>
? </head>
? <body>
? ? <div id="app">
? ? ? <div id="total"></div>
? ? ? <div id="menus"></div>
? ? ? <div id="sites">站點(diǎn): </div>
? ? ? <!-- ... -->
? ? </div>
? ? <script src="./bookmarks.js"></script>
? </body>
</html>

我們的插件html代碼中引入了 popup.css?樣式文件和 bookmarks.js?腳本文件。

css文件也是一樣,與平常我們寫前端樣式?jīng)]有區(qū)別。

需要注意的是,js代碼只能通過引入腳本文件的方式進(jìn)行處理,不能在html中使用script內(nèi)嵌腳本,否則會(huì)報(bào)錯(cuò)。

<script>
? console.log(3333)
</script>

如果使用上述方式增加js代碼,則任何代碼都不會(huì)被執(zhí)行,并且會(huì)有非安全代碼錯(cuò)誤提示:

如何開發(fā)一個(gè)chrome瀏覽器插件

?文章來源地址http://www.zghlxwxcb.cn/news/detail-474412.html

另外,也不得請(qǐng)求網(wǎng)絡(luò)資源類型的js文件。

js

再來看一下js文件中的代碼,本質(zhì)上也與平時(shí)寫的代碼一樣,支持es6語法,比如根據(jù)id讀取頁面上的元素,如下代碼所示:

const app = document.getElementById('app')
const totalEl = document.getElementById('total')

我們的插件主要處理書簽,chrome提供了 bookmarks?對(duì)象可以使用:

chrome.bookmarks.getRecent(10000, (results) => {
? totalEl.innerHTML = '總數(shù):' + results.length
})

以上代碼,即通過 bookmarks?對(duì)象的 getRecent?方法,獲取到瀏覽器書簽的總數(shù)量(這里默認(rèn)書簽總數(shù)小于10000,讀取最近1萬個(gè)書簽數(shù)據(jù))。

上面代碼是使用的回調(diào)函數(shù)的方式獲取結(jié)果,我們也可以使用 Promise?的方式調(diào)用:

chrome.bookmarks.getRecent(10000).then((results) => {
? totalEl.innerHTML = '總數(shù):' + results.length
})

通過這種方式就可以獲取到對(duì)應(yīng)的書簽總數(shù)量,其他的對(duì)書簽進(jìn)行不同的分類、統(tǒng)計(jì)最新或最早的書簽信息,都可以通過書簽對(duì)象來處理。

// 獲取整個(gè)書簽欄的樹結(jié)構(gòu)數(shù)據(jù)
chrome.bookmarks.getTree()
// 獲取某個(gè)父節(jié)點(diǎn)下的所有子節(jié)點(diǎn)書簽
chrome.bookmarks.getChildren(str)
// 根據(jù)條件搜索書簽
chrome.bookmarks.search(str)

通過對(duì)書簽對(duì)象的操作,可以基本完成我們插件對(duì)書簽的統(tǒng)計(jì)和特殊書簽的展示功能。

加載插件

到此,簡(jiǎn)單的書簽插件就可以使用了,我們需要把插件代碼加載到瀏覽器中,打開瀏覽器的擴(kuò)展程序管理界面。

如何開發(fā)一個(gè)chrome瀏覽器插件

如上圖所以,點(diǎn)擊 加載已解壓的擴(kuò)展程序?按鈕,直接加載源代碼文件夾,即可完成擴(kuò)展程序的加載導(dǎo)入。

上圖中的 mybookmarks 2.0?就是我們的書簽插件,已經(jīng)順利加載,就可以使用了。

調(diào)試

如果插件可以加載,但部分代碼有錯(cuò)誤,則會(huì)明示錯(cuò)誤,可以點(diǎn)擊查看:

如何開發(fā)一個(gè)chrome瀏覽器插件

調(diào)試插件代碼,也比較簡(jiǎn)單,在彈窗頁面上右鍵點(diǎn)擊 檢查,就會(huì)打開插件頁面的開發(fā)者工具,和瀏覽器頁面的開發(fā)者工具一樣,可以進(jìn)行代碼調(diào)試工作。

如何開發(fā)一個(gè)chrome瀏覽器插件

打開的開發(fā)者工具,加載的就是彈窗入口頁面:

如何開發(fā)一個(gè)chrome瀏覽器插件

總結(jié)

至此,我們的書簽插件就開發(fā)完成,可以加載到瀏覽器中使用了。

功能雖然很簡(jiǎn)單,但也是依據(jù)chrome插件開發(fā)的各種規(guī)范,如果要開發(fā)更復(fù)雜的功能,就需要查看chrome插件開發(fā)規(guī)范中提供的各種API?;蛘呤褂们岸藈eb技術(shù),擴(kuò)展更多的功能也將是水到渠成的事情。

?

到了這里,關(guān)于如何開發(fā)一個(gè)chrome瀏覽器插件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【AI選股】如何通過python調(diào)用通達(dá)信-小達(dá)實(shí)現(xiàn)AI選股(量化又多了一個(gè)選股工具,原文Chrome瀏覽器請(qǐng)改為Edge瀏覽器)

    【AI選股】如何通過python調(diào)用通達(dá)信-小達(dá)實(shí)現(xiàn)AI選股(量化又多了一個(gè)選股工具,原文Chrome瀏覽器請(qǐng)改為Edge瀏覽器)

    ChatGPT火遍網(wǎng)絡(luò),那么有沒有可以不用寫公式就可以實(shí)現(xiàn)AI選股的方法?答案是有,今天我們就來試試通達(dá)信的小達(dá),讓小達(dá)按我們的要求去進(jìn)行選股。 使用Chrome瀏覽器報(bào)錯(cuò)的請(qǐng)改為Edge瀏覽器,或者Firefox瀏覽器,參考如下文章: 【Python小技巧】browser_cookie3訪問Chrome瀏覽器Co

    2024年02月11日
    瀏覽(18)
  • Chrome 瀏覽器插件 cookies API 解析

    Chrome 瀏覽器插件 cookies API 解析

    前端開發(fā)肯定少不了和 cookie 打交道,此文較詳細(xì)的介紹下 chrome.cookie 的 API 以及在 popup、service worker、content 中如何獲取的 如果需使用 Cookie API ,需要在 manifest.json 文件中添加權(quán)限( Permissions )和主機(jī)權(quán)限( host_permissions )字段 比如,我需要獲取 domain 為 .lkcoffee.com 的 cook

    2024年01月21日
    瀏覽(23)
  • 谷歌瀏覽器(chrome)安裝crx插件

    谷歌瀏覽器(chrome)安裝crx插件

    1、下載crx插件 2、插件擴(kuò)展名改名為zip 3、解壓zip文件 4、打開谷歌瀏覽器擴(kuò)展程序 chrome://extensions/ 5、打開開發(fā)者模式,加載已解壓的擴(kuò)展程序,安裝成功即如圖展示 ? ?

    2024年02月11日
    瀏覽(32)
  • chrome瀏覽器必備5款插件--各個(gè)都好使--chrome基礎(chǔ)

    chrome瀏覽器必備5款插件--各個(gè)都好使--chrome基礎(chǔ)

    辦公電腦在使用固定期限后,又到了新?lián)Q電腦的時(shí)候,本次新電腦到手后,在瀏覽器方面依然選擇了已經(jīng)熟悉的chrome瀏覽器,有一句話說的對(duì),沒有插件的chrome瀏覽器是沒有靈魂的。所以在沿用chrome瀏覽器后,這次也對(duì)前期使用的chrome瀏覽器插件進(jìn)行了重新的審視和用途的重

    2024年02月09日
    瀏覽(26)
  • Chrome瀏覽器安裝Axure-Chrome-Extension插件

    Chrome瀏覽器安裝Axure-Chrome-Extension插件

    Chrome 瀏覽器打開 Axure 生成的 HTML 靜態(tài)文件頁面時(shí),會(huì)顯示如下圖 AXURE RP EXTENSION FOR CHROME ,這是因?yàn)?Chrom e 瀏覽器沒有安裝 Axure 插件 Axure-Chrome-Extension 導(dǎo)致的。 1.下載Axure-Chrome-Extension插件壓縮包并解壓: 2.打開Chrome瀏覽器,右上角菜單中找到 “擴(kuò)展程序---管理擴(kuò)展程序”;

    2024年02月22日
    瀏覽(24)
  • chrome 谷歌瀏覽器 導(dǎo)出插件拓展和導(dǎo)入插件拓展

    chrome 谷歌瀏覽器 導(dǎo)出插件拓展和導(dǎo)入插件拓展

    給同事部署 微軟 RPA時(shí),需要用到對(duì)應(yīng)的chrome瀏覽器插件;谷歌瀏覽器沒有外網(wǎng)是不能直接下載拓展弄了半小時(shí)后才弄好,竟發(fā)現(xiàn)沒有現(xiàn)成的教程,遂補(bǔ)充; 谷歌瀏覽器 地址欄敲 在對(duì)應(yīng)的地址下,找到對(duì)應(yīng)的插件存放位置; 在該文件夾中,對(duì)應(yīng)id找到對(duì)應(yīng)的文件 直接引用這

    2024年02月09日
    瀏覽(25)
  • 零編程經(jīng)驗(yàn),通過 GPT-4 十分鐘開發(fā)了一個(gè)瀏覽器插件,并成功運(yùn)行,實(shí)現(xiàn)了需求目標(biāo)!

    零編程經(jīng)驗(yàn),通過 GPT-4 十分鐘開發(fā)了一個(gè)瀏覽器插件,并成功運(yùn)行,實(shí)現(xiàn)了需求目標(biāo)!

    大佬藍(lán)鳥ID: sundyme 零編程經(jīng)驗(yàn),通過 GPT-4 十分鐘開發(fā)了一個(gè)瀏覽器插件,并成功運(yùn)行,實(shí)現(xiàn)了需求目標(biāo)!太不可思意了,真正體會(huì)到了自然語言編程的魅力! 下一步是利用Pinterest 的 API 接口實(shí)現(xiàn)自動(dòng)發(fā)圖,已經(jīng)生成好了代碼和步驟(看著挺靠譜),等明天開發(fā)者權(quán)限審核下

    2023年04月08日
    瀏覽(86)
  • Chrome 瀏覽器安裝Vue2、Vue3插件方法 (詳細(xì)有效)

    Chrome 瀏覽器安裝Vue2、Vue3插件方法 (詳細(xì)有效)

    因?yàn)楣雀枭坛切枰瓑?,很多人進(jìn)不去,無法下載vue插件。推薦一個(gè)好用的網(wǎng)站“極簡(jiǎn)插件”,里面有很多的谷歌應(yīng)用插件可以下載。 下載插件地址 點(diǎn)擊上方鏈接,在極簡(jiǎn)插件里搜索如圖下載,根據(jù)自己需要進(jìn)行下載。 點(diǎn)開擴(kuò)展程序頁面,方面后面把插件拖進(jìn)去 ?以

    2024年02月12日
    瀏覽(23)
  • Chrome瀏覽器中的vue插件devtools的下載方式(使用Chrome應(yīng)用商店/科學(xué)上網(wǎng)情況下)

    Chrome瀏覽器中的vue插件devtools的下載方式(使用Chrome應(yīng)用商店/科學(xué)上網(wǎng)情況下)

    目錄 devtools對(duì)前端來說的好處——開發(fā)預(yù)覽、遠(yuǎn)程調(diào)試、性能調(diào)優(yōu)、Bug跟蹤、斷點(diǎn)調(diào)試等? 下載步驟:? 測(cè)試階段:? 最近做項(xiàng)目要使用devtools這個(gè)vue插件。 首先先想個(gè)辦法搞個(gè)加速器之類的,好實(shí)現(xiàn)科學(xué)上網(wǎng)。 在Chrome瀏覽器中訪問以下網(wǎng)址: Chrome應(yīng)用商店網(wǎng)址: https://c

    2024年02月14日
    瀏覽(26)
  • 谷歌chrome瀏覽器所有歷史版本下載及selenium自動(dòng)化控制插件資源分享

    谷歌chrome瀏覽器所有歷史版本下載及selenium自動(dòng)化控制插件資源分享

    使用python + selenium做網(wǎng)頁自動(dòng)化開發(fā)的小伙伴經(jīng)常需要用到google chrome瀏覽器以及chromedriver插件。? ?? 谷歌瀏覽器所有歷史版本下載鏈接: chrome歷史版本,點(diǎn)擊下載 chromedriver插件下載地址: 下載鏈接1:點(diǎn)擊下載 下載鏈接2:點(diǎn)擊下載 chromedriver插件與瀏覽器版本有對(duì)應(yīng)關(guān)系,

    2024年02月14日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包