精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何開發一款自己的Chrome擴展插件

系統 瀏覽器
chrome瀏覽器的擴展開發其實并不難,用到的知識都是基礎的js,html,css,我們只需要知道一些和瀏覽器交互的屬性和操作的api,就可以開發出一個屬于自己的瀏覽器擴展。

說到現如今最流行的瀏覽器,那么一定是chrome,無論是它的速度,還是它的穩定性,還是它的簡潔,都讓人愛不釋手,此外,更多的人選擇它的理由是它有著豐富的擴展插件,這些擴展插件讓你的瀏覽器變得異常強大,讓你的瀏覽器不僅僅是瀏覽器。

Chrome擴展結構

chrome的擴展是以.crx結尾的安裝包,如果你把它下載下來,并把它重命名為.rar壓縮包文件,然后你就可以使用壓縮軟件對它進行解壓,加壓之后,就會發現其實chrome的擴展包里面就是一些js,css,html文件,可以說你只要會寫前端,那么開發一個chrome擴展插件將會非常容易。

在這些文件中,有一個manifest.json文件,它是擴展的描述文件,定義了擴展的名稱和版本號等信息。

{
"name": "BrowserActionExtension",
"version": "0.0.1"
"manifest_version": 2,
"browser_action": {
"default_title": "That's the tool tip",
"default_popup": "popup.html"
}
}

在這個配置文件中,你還可以添加其它屬性,只要你的擴展需要的屬性,你都可以在這里添加配置。

每一個擴展都有一個被瀏覽器運行的背景頁,此外還有事件頁面,背景頁面一直都是激活狀態,而事件頁面只是在觸發事件的時候才會激活,因此為了節省內存和提高瀏覽器的性能,盡可能選擇事件頁面。兩者通過persistent屬性進行區分。

"background": {
"scripts": ["background.js"],
"persistent": false/true
}

當我們的擴展想要訪問瀏覽器當前頁面的dom樹的時候,我們需要使用內容腳本,這些腳本會在頁面刷新的時候執行。

"content_scripts": [
{
"matches": ["https://*/*", "https://*/*"],
"js": ["content.js"]
}
]

對于擴展的UI界面,我們可以通過browser_action屬性進行配置,通過此屬性,我們可以設置擴展的圖標,設置點擊彈出的頁面。

"browser_action": {
"default_icon": {
"19": "icons/19x19.png",
"38": "icons/38x38.png"
},
"default_title": "That's the tool tip",
"default_popup": "popup.html"
}

除了browser_action可以配置擴展圖標之外,page_action可以配置圖標,兩者的區別是,browser_action總是顯示在擴展欄,而page_action則是滿足一定條件才會顯示,比如頁面有vue腳本時候才會顯示vue調試圖標。

"page_action": {
"default_icon": {
"19": "images/icon19.png",
"38": "images/icon38.png"
},
"default_title": "Google Mail",
"default_popup": "popup.html"
}

chrome被開發人員所喜愛的另一個原因是它提供了非常強大的調試工具欄,而我們的擴展也是可以加入到調試工具欄的。

通過使用devtools_page屬性,我們就可以將我們的擴展加入到調試工具欄的一個tab中。

"devtools_page": "devtools.html"

我們在devtools.html中只需要添加一個js引入語句就可以。

"devtools_page": "devtools.html"

在devtools.js文件里,我可以可以放入我們實際的擴展內容。

chrome.devtools.panels.create(
"MyExtension",
"img/icon16.png",
"index.html",
function() {

}
);

擴展能夠做什么

擴展能夠做什么主要取決于瀏覽器為我們提供了哪些API,慶幸的是,chrome為我們提供了足夠多好用的API。

  • 我們可以操作用戶的書簽和瀏覽記錄
  • 我們可以控制下載,管理下載內容
  • 我們可以監聽網絡請求,監聽事件響應
  • 我們可以修改界面樣式,可以添加自定義css
  • 我們可以在頁面添加想要的元素

總之,chrome幾乎為我們提供了完整控制瀏覽器的擴展api,正是有了這些api,才誕生了幾十萬的擴展插件。

擴展的調試

在我們本地開發好擴展之后,我們可以通過本地瀏覽器進行調試。

首先,我們需要先進入擴展程序頁面,打開開發者模式

然后,我們可以通過選擇加載已解壓的擴展程序加載我們的擴展。

最后,我們通過在控制臺輸出調試信息來調試我們的擴展。

完整的示例

manifest.json:

{
"name": "BrowserExtension",
"version": "0.0.1",
"manifest_version": 2,
"description" : "Description ...",
"icons": { "16": "icons/16x16.png", "48": "icons/48x48.png", "128": "icons/128x128.png" },
"omnibox": { "keyword" : "yeah" },
"browser_action": {
"default_icon": { "19": "icons/19x19.png", "38": "icons/38x38.png" },
"default_title": "That's the tool tip",
"default_popup": "browseraction/popup.html"
},
"background": {
"scripts": ["background.js"],
"persistent": false
},
"chrome_url_overrides" : {
"newtab": "newtab/newtab.html"
},
"content_scripts": [{
"matches": ["http://*/*", "https://*/*"],
"js": ["content.js"]
}],
"devtools_page": "devtools/devtools.html"
}

background.js:

// omnibox
chrome.omnibox.onInputChanged.addListener(function(text, suggest) {
suggest([
{content: "color-divs", description: "Make everything red"}
]);
});
chrome.omnibox.onInputEntered.addListener(function(text) {
if(text == "color-divs") colorDivs();
});

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
switch(request.type) {
case "color-divs":
colorDivs();
break;
}
return true;
});

chrome.extension.onConnect.addListener(function (port) {
port.onMessage.addListener(function (message) {
switch(port.name) {
case "color-divs-port":
colorDivs();
break;
}
});
});

// send a message to the content script
var colorDivs = function() {
chrome.tabs.getSelected(null, function(tab){
chrome.tabs.sendMessage(tab.id, {type: "colors-div", color: "#F00"});
// setting a badge
chrome.browserAction.setBadgeText({text: "red!"});
});
}

popup.html:

<script type="text/javascript" src="popup.js"></script>
<div style="width:200px">
<button id="button">Color all the divs</button>
</div>

popup.js:

window.onload = function() {
document.getElementById("button").onclick = function() {
chrome.extension.sendMessage({
type: "color-divs"
});
}
}

devtools.html:

window.onload = function() {
var port = chrome.extension.connect({ name: "color-divs-port" });
document.getElementById("button").onclick = function() {
port.postMessage({ type: "color-divs"});
}
}

content.js:

chrome.extension.onMessage.addListener(function(message, sender, sendResponse) {
switch(message.type) {
case "colors-div":
var divs = document.querySelectorAll("div");
if(divs.length === 0) {
alert("There are no any divs in the page.");
} else {
for(var i=0; i<divs.length; i++) {
divs[i].style.backgroundColor = message.color;
}
}
break;
}
});

總結

chrome瀏覽器的擴展開發其實并不難,用到的知識都是基礎的js,html,css,我們只需要知道一些和瀏覽器交互的屬性和操作的api,就可以開發出一個屬于自己的瀏覽器擴展。

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2017-03-01 17:47:46

Chrome

2021-09-26 05:00:11

Vscode插件

2021-11-02 14:19:15

插件MavengroupId

2016-09-21 12:34:10

Chrome瀏覽器插件

2017-03-07 11:25:58

IT技術周刊

2021-04-08 09:35:10

瀏覽器 Chrome Google

2022-02-23 14:21:20

Chrome插件瀏覽器

2011-06-17 11:22:33

jQueryjQuery插件

2013-09-04 13:27:05

Linux發行版

2011-08-09 09:16:44

Eclipse

2011-01-19 13:19:39

Thunderbird插件

2009-12-04 10:19:04

2022-04-30 09:49:58

終端工具插件

2009-06-02 09:15:43

2020-03-12 12:55:19

擴展插件瀏覽器

2013-08-01 15:12:43

2009-09-15 09:29:29

Google Chro擴展插件谷歌

2014-12-16 10:11:22

2017-03-06 11:02:59

產品軟件Power Desig

2021-07-28 06:51:09

linux
點贊
收藏

51CTO技術棧公眾號

国产激情视频一区| 日韩电视剧免费观看网站| 国产欧美自拍视频| 粉嫩小泬无遮挡久久久久久| 亚洲麻豆av| 在线一区二区日韩| 亚洲成a人片在线www| 樱桃视频成人在线观看| 中文字幕亚洲区| 国产精品一区二区不卡视频| 人人妻人人爽人人澡人人精品| 成人精品影视| 精品久久久久久亚洲综合网| 亚洲精品乱码久久久久久自慰| 欧美一区二区三区在线观看免费| 成人免费av资源| 国产精品免费电影| 日本特黄特色aaa大片免费| 日本一区二区免费高清| 精品福利二区三区| 鲁一鲁一鲁一鲁一av| av中文字幕在线观看第一页| 国产精品美女久久久久av爽李琼| 精品国产乱码久久久久久郑州公司 | 亚洲我射av| 色一情一乱一乱一91av| 欧美黄网在线观看| 午夜视频在线观看网站| 91欧美一区二区| http;//www.99re视频| 国产成人av免费| 国产偷自视频区视频一区二区| 欧美成人精品h版在线观看| 中文字幕成人动漫| 网曝91综合精品门事件在线 | 五月激情婷婷网| 国产精品自拍一区| 国产日本欧美一区| 天天天天天天天干| 久久久久网站| 日本最新高清不卡中文字幕| 日韩黄色精品视频| 韩国一区二区三区在线观看| 美女福利视频一区| 黄色a级片在线观看| 久久精品99久久无色码中文字幕| 亚洲精品资源美女情侣酒店| 精品人妻一区二区免费视频| 超碰一区二区三区| 精品999久久久| 性农村xxxxx小树林| 少妇精品在线| 日韩美女视频在线| 18禁一区二区三区| 在线精品自拍| 亚洲第一福利网站| av漫画在线观看| 国产精品天天看天天狠| 亚洲成人精品av| 在线免费看黄色片| 欧美精品中文字幕亚洲专区| 日韩禁在线播放| 91精彩刺激对白露脸偷拍| 最新国产一区| 亚洲欧美制服综合另类| jizz中文字幕| 五月开心六月丁香综合色啪| 欧美成年人视频网站| 久久久久性色av无码一区二区| 欧美三级小说| 91成人免费观看网站| 日日摸天天添天天添破| 爽好多水快深点欧美视频| 国产精品久久久久7777婷婷| 在线观看视频二区| 国产精品小仙女| 久久免费99精品久久久久久| 麻豆av电影在线观看| 欧美激情一区二区三区在线| 亚洲小说欧美另类激情| 国产偷倩在线播放| 欧美午夜视频一区二区| 国产日韩欧美久久| 91九色鹿精品国产综合久久香蕉| 亚洲精品久久久久久久久| 波多野结衣a v在线| 香蕉综合视频| 韩国三级电影久久久久久| 午夜精品久久久久久久蜜桃| 极品少妇xxxx精品少妇| 国产在线欧美日韩| av成人手机在线| 亚洲一区二区三区四区在线| 国产麻花豆剧传媒精品mv在线| 久久久久黄色| 亚洲国产天堂久久综合| 中文字幕91视频| 亚洲国产精品第一区二区| 国产精品都在这里| 成人小说亚洲一区二区三区| 国产亚洲精品aa| 欧美大黑帍在线播放| 怡红院成人在线| 精品国产乱码久久久久久1区2区| 在线观看国产精品一区| 欧美日本亚洲韩国国产| 国产精品jizz在线观看麻豆| 午夜精品一二三区| 国产日韩欧美麻豆| 老太脱裤让老头玩ⅹxxxx| 日日狠狠久久| 亚洲欧美日韩直播| 日韩av女优在线观看| 精品一区二区三区不卡| 欧美一区二区三区成人久久片| 日本无删减在线| 欧美日韩三级一区二区| av网页在线观看| 久久久9色精品国产一区二区三区| 91高清免费视频| 精品人妻一区二区三区蜜桃| 国产精品久久二区二区| 成年人在线看片| 欧美美女在线直播| 欧美激情视频网| 国产精品一品二区三区的使用体验| 91麻豆精东视频| 国产免费一区二区视频| 国产高清亚洲| 自拍偷拍亚洲精品| 久久精品偷拍视频| 91蝌蚪porny九色| 三上悠亚久久精品| 成功精品影院| 性金发美女69hd大尺寸| 亚洲av色香蕉一区二区三区| 中文字幕在线一区二区三区| 另类小说第一页| 国产一区二区三区日韩精品 | 精品久久在线| 尤物精品国产第一福利三区 | 久久精品国产一区二区三区不卡| japanese色国产在线看视频| 日韩欧美一级二级三级| 欧美在线视频第一页| 久久成人免费电影| 一区二区三区在线视频111| 精品日韩视频| 丝袜亚洲另类欧美重口| 国产裸体美女永久免费无遮挡| 久久精品一区二区三区不卡| 中文字幕第80页| 欧美日韩有码| 国产日韩欧美自拍| 成人在线观看亚洲| 欧美mv日韩mv国产网站app| 欧美日韩大片在线观看| 粉嫩久久99精品久久久久久夜| www.亚洲视频.com| 国产喷水福利在线视频| 麻豆传媒在线完整视频| 欧美日韩亚洲一区二区| 免费黄色在线视频| 免费在线看一区| 宅男噜噜99国产精品观看免费| 亚洲成人精品综合在线| 欧美日韩成人网| 日韩在线视频观看免费| 欧美色道久久88综合亚洲精品| 成人午夜剧场视频网站| 美国十次了思思久久精品导航 | 欧美日韩久久| 国产精品日韩欧美一区二区| 黄色在线网站噜噜噜| 亚洲天堂2020| 国产美女三级无套内谢| 亚洲福中文字幕伊人影院| 一二三不卡视频| 开心九九激情九九欧美日韩精美视频电影 | www.国产精品视频| 粉嫩av一区二区三区免费野| 老头老太做爰xxx视频| 激情欧美一区二区| 国产原创中文在线观看| 精品美女久久久| 999在线观看免费大全电视剧| 国产高潮在线| 日韩在线小视频| 黄色片一区二区三区| 日韩欧美亚洲国产一区| 精品国产国产综合精品| 成人精品国产一区二区4080| 国产精品涩涩涩视频网站| 国产精品99一区二区三| 国内精品二区| 日韩伦理一区二区| 青青精品视频播放| 伊人春色在线观看| 在线精品国产欧美| 国产 日韩 欧美 精品| 欧美三级日韩在线| 国产福利拍拍拍| 亚洲天堂免费在线观看视频| 国产精品无码一区二区三区免费 | 日本丰满少妇一区二区三区| 欧美性猛交xxxxx少妇| 久久久精品免费观看| 久久久久99人妻一区二区三区| 首页亚洲欧美制服丝腿| 亚洲精品蜜桃久久久久久| 日本高清免费电影一区| 精品不卡在线| 精品久久国产一区| 国产精品久久97| 色戒汤唯在线观看| 欧美高清在线视频观看不卡| 日本免费在线观看| 国产亚洲激情在线| 日韩二区三区| 亚洲国产精品99久久| 99久久久久久久| 欧美日韩国产一二三| av一级在线观看| 午夜精品福利一区二区三区av| www.色小姐com| 国产精品污www在线观看| 中文字幕av网址| 91网站视频在线观看| 精品人妻一区二区免费| 国产精品一区二区久久精品爱涩 | 国产天堂第一区| 福利视频导航一区| 亚洲欧美在线视频免费| 亚洲曰韩产成在线| 欧美激情国产精品免费| 成人免费一区二区三区视频 | 911精品美国片911久久久| 亚洲成人在线视频网站| 精品国产乱码久久久久久蜜坠欲下| 精品欧美一区二区久久久伦| 久久a爱视频| 国产一区二区在线观看免费播放| 粉嫩一区二区三区四区公司1| 丁香五月网久久综合| 91精品国产自产在线丝袜啪| 成人免费在线一区二区三区| 91成人短视频| 激情小说综合网| 亚洲人挤奶视频| 日本a级片久久久| 欧美久久精品一级c片| 日韩一区不卡| 国产精品久久观看| 在线观看污视频| 在线观看的日韩av| 18禁免费观看网站| 美女诱惑一区| 男女污污的视频| 老汉av免费一区二区三区| 日韩在线一区视频| 国产九九视频一区二区三区| 最新中文字幕日本| av一本久道久久综合久久鬼色| 污片免费在线观看| 国产欧美一区二区三区鸳鸯浴 | 黄色正能量网站| 国产人成一区二区三区影院| 美国黄色片视频| 亚洲一区欧美一区| 国产精品视频久久久久久久| 在线中文字幕一区二区| 亚洲综合五月天婷婷丁香| 91精品国产一区二区三区| 亚洲欧美另类日韩| 亚洲欧美日韩另类| 久草免费在线观看| 久久久久久久久国产| 欧美成人黑人| 91情侣在线视频| 免费欧美一区| 国产在线拍揄自揄拍无码| 99精品视频免费观看视频| 无码日韩人妻精品久久蜜桃| 国产麻豆精品久久一二三| 中文字幕在线观看网址| 亚洲欧洲日韩在线| 亚洲欧美在线视频免费| 欧美久久久久久久久久| 视频污在线观看| 久久精品在线播放| 日韩大片免费观看| 91免费版网站入口| 伊人久久大香线蕉av不卡| avove在线观看| 久久久精品日韩| 国产伦理在线观看| 亚洲国产精品黑人久久久| 精品肉丝脚一区二区三区| 欧美专区亚洲专区| 囯产精品久久久久久| 日韩在线观看免费| 在线观看爽视频| 99re视频在线播放| 手机在线电影一区| 免费成人在线视频网站| 狠狠色狠狠色综合| 一级片视频免费看| 亚洲成av人片一区二区梦乃| 91国产精品一区| 亚洲性av网站| 国产美女高潮在线观看| 2022国产精品| 999国产精品视频| 国产精品69页| 99久久综合精品| 精品少妇久久久| 日韩午夜激情视频| 男人的天堂在线视频免费观看| 日本高清+成人网在线观看| 亚洲日本一区二区三区在线| 在线观看欧美一区| 日本人妖一区二区| 成人免费网站黄| 欧美性生交xxxxx久久久| 亚洲AV无码精品自拍| 久热99视频在线观看| 美女视频一区| 亚洲欧美在线网| 日韩成人免费电影| 日韩精品无码一区二区三区久久久 | 亚洲精品久久久久国产| 成人在线免费观看黄色| 99一区二区三区| 欧美一区不卡| 日本美女久久久| 亚洲精品写真福利| 国产精品视频久久久久久| 日韩有码片在线观看| 成人看片毛片免费播放器| 日本精品一区二区三区不卡无字幕| 亚洲欧美卡通另类91av| 醉酒壮男gay强迫野外xx| 精品久久久久久久久久国产 | 欧美华人在线视频| 人人爱人人干婷婷丁香亚洲| 激情视频小说图片| 国产+成+人+亚洲欧洲自线| 精品无码久久久久久久| 亚洲精品一区二区三区香蕉| 91福利在线尤物| 精品视频免费观看| 噜噜噜躁狠狠躁狠狠精品视频| 性少妇bbw张开| 欧洲精品在线观看| 欧美尤物美女在线| www 成人av com| 国产精品女主播一区二区三区| 亚洲一区二区观看| 在线观看免费一区| 日本不卡在线| 99久久久精品免费观看国产| 亚洲精品1234| 我和岳m愉情xxxⅹ视频| 91黄色小视频| 老司机精品影院| 国产精品一区二| 免费中文字幕日韩欧美| 一二三四国产精品| 欧美一区日韩一区| av在线中出| 日韩一区二区三区资源| 国产剧情一区二区三区| 国产成人无码精品久在线观看 | 青春草免费在线视频| 国产丝袜不卡| 美女视频网站黄色亚洲| www.色小姐com| 亚洲欧美中文字幕| 国产成年精品| 18岁网站在线观看| 国产精品久久久久久亚洲伦| 不卡av中文字幕| 国产91在线播放精品91| 亚洲午夜精品一区二区国产 | 亚洲日产av中文字幕| 爱爱爱爱免费视频| 亚洲成人一区在线| 婷婷免费在线视频| 国内精品久久国产| 六月丁香综合在线视频| 欧美成人精品欧美一级乱黄| www亚洲欧美| 欧美激情15p| 在线成人免费av| 在线视频观看一区| 9lporm自拍视频区在线| 神马影院我不卡午夜| 懂色av一区二区三区免费观看| 欧美在线视频精品| 91国产在线精品|