精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

91精品国产aⅴ一区二区| 91麻豆文化传媒在线观看| 久久久成人精品| 尤物av无码色av无码| 欧美一区二区少妇| 精品一区二区久久久| 欧美精品videos另类日本| 欧美多人猛交狂配| 欧美影院精品| 91高清视频在线| 日本高清视频免费在线观看| 天堂91在线| 极品销魂美女一区二区三区| 91高清视频免费| 美国一级片在线观看| 欧美a级网站| 91精品国产综合久久久蜜臀粉嫩| 日韩激情免费视频| 在线中文字幕-区二区三区四区| 99re热这里只有精品免费视频| 91精品久久久久久久久中文字幕| 西西44rtwww国产精品| 亚洲精品成人| 一区二区三区四区在线观看视频| 91九色蝌蚪porny| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 女优一区二区三区| 日韩一区二区在线看片| 国产免费视频传媒| 蜜桃视频在线观看免费视频| 亚洲精品高清在线| 日韩一本精品| 日本大臀精品| 99久久国产综合精品色伊| 91在线精品播放| 亚洲中文一区二区三区| 久久精品道一区二区三区| 久久久久久久久久久久av| 欧美一级特黄高清视频| 精品久久久亚洲| 亚洲欧美精品suv| 精品黑人一区二区三区观看时间| 日本一区二区三区播放| 欧美日韩美女一区二区| av无码精品一区二区三区| 色老头在线一区二区三区| 夜夜操天天操亚洲| www国产免费| 久做在线视频免费观看| 国产精品国产馆在线真实露脸 | 色男人天堂综合再现| 精品亚洲aⅴ在线观看| 亚洲 欧美 日韩在线| 91成人短视频| 日韩免费在线观看| 久久国产免费视频| 成人av地址| 亚洲国产成人精品一区二区| 日韩www视频| 另类ts人妖一区二区三区| 亚洲经典中文字幕| 久久久久久亚洲中文字幕无码| 伊人久久大香线蕉综合网蜜芽| 日韩久久午夜影院| 国产成人福利在线| 久久亚洲国产| 欧美成年人视频网站| 人妻少妇精品一区二区三区| 在线不卡视频| 日韩av成人在线| 一级特黄aaa大片| 国产精品资源站在线| 国产精品国产精品| 亚洲三区在线观看无套内射| 久久伊人中文字幕| 亚洲精品成人a8198a| 成人影院在线看| 亚洲二区在线视频| 北条麻妃在线一区| 亚洲伦理一区二区| 欧美mv日韩mv| 久久久亚洲av波多野结衣| 成人系列视频| 久久av.com| 在线能看的av| 激情另类小说区图片区视频区| 成人h视频在线观看| 天天躁日日躁狠狠躁喷水| 久久亚洲综合色一区二区三区| 天堂精品一区二区三区| 国产黄a三级三级三级av在线看| 洋洋成人永久网站入口| 少妇性l交大片| 国产精品va视频| 日韩成人在线电影网| 天堂av网手机版| 亚洲激情影院| 成人福利网站在线观看| 无码精品黑人一区二区三区| 国产精品久久久久久久久免费丝袜| 国产在线拍揄自揄拍无码| 91福利在线尤物| 欧美人妖巨大在线| v天堂中文在线| 欧美韩日高清| 日本午夜精品理论片a级appf发布| 一二三四区视频| 97精品久久久午夜一区二区三区| 影音先锋在线亚洲| 欧美大电影免费观看| 精品少妇一区二区三区日产乱码| 色一情一交一乱一区二区三区| 欧美三级网页| 国产欧美精品一区二区三区-老狼| 黄色片一区二区三区| 亚洲人成小说网站色在线| 精品国产成人av在线免| 亚洲一区二区三区日本久久九| 中日韩午夜理伦电影免费| 国产成人无码精品| 国产精品99久久久久久宅男| 视频一区三区| 在线天堂新版最新版在线8| 精品精品国产高清一毛片一天堂| 久久久精品成人| 久久精品30| 久久久福利视频| 青草视频在线免费直播| 欧美裸体bbwbbwbbw| 人妻av无码一区二区三区| 国产精品尤物| 精品欧美一区二区在线观看视频 | 少妇无码一区二区三区| 一区二区久久久| 手机在线免费毛片| 手机亚洲手机国产手机日韩| 国产精品91久久| 青青草观看免费视频在线 | 伊人网免费视频| 国产日韩v精品一区二区| 男人天堂网视频| 偷拍自拍亚洲色图| 欧美亚洲视频一区二区| 亚洲aⅴ乱码精品成人区| 亚洲成a人v欧美综合天堂下载 | 欧美日韩福利电影| 亚洲av无码乱码国产精品| 亚洲你懂的在线视频| 日本网站在线看| 欧美国产精品| 国产精品久久7| 69av成人| 亚洲男女性事视频| 国产天堂第一区| 国产精品久久久久精k8| 欧美成人乱码一二三四区免费| 欧美一区二区三| 国产欧美在线看| jizzjizz亚洲| 精品成人在线观看| 黄色一级片免费在线观看| 91麻豆高清视频| 91n.com在线观看| 在线成人直播| 国产精品免费区二区三区观看| sm捆绑调教国产免费网站在线观看| 亚洲成人性视频| 久久青青草原亚洲av无码麻豆 | 希岛爱理中文字幕| 国产91在线|亚洲| 日韩精品xxxx| jiujiure精品视频播放| 91精品在线观看视频| 国产高清在线a视频大全| 亚洲欧美国产视频| 91久久精品无码一区二区| 一级精品视频在线观看宜春院| 国产污在线观看| 三级影片在线观看欧美日韩一区二区 | 久久国产麻豆精品| 日本一级淫片演员| 久久视频在线观看| 国产精品国语对白| 麻豆tv入口在线看| 亚洲国产欧美久久| 最近中文字幕免费在线观看| 亚洲免费在线电影| 黄色工厂在线观看| 国产在线观看一区二区| 国产美女网站在线观看| 久久在线视频| 精品综合在线| 成人在线视频区| 欧美亚洲激情在线| 黄色网在线免费看| 亚洲欧美中文日韩在线| 国产人妖一区二区三区| 欧美日韩一区二区在线| 视频国产一区二区| 91美女片黄在线| 国产成人精品综合久久久久99| 香蕉亚洲视频| 黄色网在线视频| 成人高清电影网站| 精品久久久久久中文字幕动漫| 日本亚洲欧洲无免费码在线| 91av在线看| 亚洲国产精品精华素| 在线丨暗呦小u女国产精品| 高h放荡受浪受bl| 欧美精品久久99久久在免费线 | 久久av在线| 国产在线视频综合| 欧美wwwww| 日本免费高清不卡| 婷婷五月色综合香五月| 超碰在线97av| 一区二区三区| 国产在线精品自拍| 精品欧美一区二区三区在线观看| 久久男人av资源网站| 二区三区在线观看| 日韩在线视频一区| 成人在线观看一区| 亚洲女成人图区| 香港三日本三级少妇66| 日韩欧美中文字幕公布| 国产又黄又粗又猛又爽| 91福利小视频| 三级网站在线播放| 一本久久a久久免费精品不卡| 日韩免费一级片| 亚洲午夜精品久久久久久久久| xxxx日本少妇| 1024成人网| 欧美三级在线免费观看| 亚洲欧美综合在线精品| 九九热久久免费视频| 国产精品萝li| 任你操精品视频| 中文字幕一区二区三区乱码在线| 中文天堂资源在线| 中文字幕+乱码+中文字幕一区| 无码人妻丰满熟妇啪啪欧美| 国产视频在线观看一区二区三区| 免费a级黄色片| 久久久综合网站| 国产全是老熟女太爽了| 久久久综合视频| youjizz亚洲女人| 国产精品沙发午睡系列990531| 女人黄色一级片| 国产精品成人免费精品自在线观看 | 日韩精品一区二区亚洲av性色| 久久久久久99精品| 第一次破处视频| 国产精品嫩草久久久久| 国产三级aaa| 亚洲精品国产视频| 国产亚洲小视频| 欧美性色视频在线| 啪啪小视频网站| 欧美精品久久一区二区三区| www.看毛片| 日韩精品一区二区三区第95| 免费一级在线观看播放网址| 中文字幕国产精品| fc2ppv国产精品久久| 午夜精品久久久久久久男人的天堂 | 亚洲欧美日韩一级| 国产一区二区三区在线观看精品| 亚洲精品乱码久久久久久动漫| 国产成人综合在线播放| 99久久人妻精品免费二区| 久久久久久久久97黄色工厂| 手机av在线不卡| 亚洲综合偷拍欧美一区色| 国产精品美女久久久久av爽| 欧美视频一区在线| 亚洲爱情岛论坛永久| 日韩成人高清在线| 男人的天堂在线视频免费观看| 欧美高清视频在线播放| 一区二区精品伦理...| 国产精品免费看久久久香蕉| 亚洲成av人片在线观看www| 欧美日韩一区在线播放| 亚洲综合激情在线| 黄色片久久久久| 国产一区二区免费看| 中文字幕5566| 自拍视频在线观看一区二区| 少妇一级淫片免费放中国| 91精品国产综合久久精品| 青青草免费在线视频| 九九视频直播综合网| 国产一区二区三区影视| 国产精品国产精品国产专区蜜臀ah| 精品国产91| 可以在线看的av网站| 国产精品一区免费视频| 亚洲成人黄色av| 无吗不卡中文字幕| 99热这里只有精品3| 中文字幕日韩有码| 国产精选在线| 91一区二区三区| 日韩理论在线| 少妇高清精品毛片在线视频| 成人精品高清在线| 欧美老熟妇一区二区三区| 日本高清视频一区二区| 日韩在线观看视频网站| 大胆人体色综合| 日本中文字幕视频一区| 视频三区二区一区| 久久久久久久高潮| 精品黑人一区二区三区观看时间| 亚洲精品免费看| 国产精品久久久久久在线| 在线观看日韩欧美| 午夜日韩成人影院| 蜜桃av久久久亚洲精品| 影音先锋久久精品| 中文字幕一二三| 亚洲天堂av老司机| 一区二区国产欧美| 在线成人激情黄色| 校园春色亚洲色图| 欧美日韩免费观看一区| 国产一区二区精品| 亚洲精品久久久久中文字幕二区| 侵犯稚嫩小箩莉h文系列小说| 91久久线看在观草草青青 | 国产盗摄一区二区三区| 日本精品在线免费观看| 欧美日韩精品一区二区在线播放| 国产小视频在线观看| 国产91色在线播放| 国产欧美一区| 久久午夜夜伦鲁鲁一区二区| 国产亚洲自拍一区| 久草热在线观看| 深夜福利亚洲导航| 欧美美女福利视频| 国产大尺度在线观看| 国产一区二区三区四区五区美女 | 国模私拍在线观看| 图片区日韩欧美亚洲| 三级在线观看| 国产精品第3页| 久久日文中文字幕乱码| 国产三级生活片| 亚洲精品伦理在线| 你懂的网站在线| 2019中文字幕在线免费观看| 网友自拍区视频精品| 热久久精品国产| 国产精品视频看| a毛片在线免费观看| 久久久久久久久久久人体| 亚洲欧洲av| 色婷婷成人在线| 亚洲人成精品久久久久久| 精品人妻一区二区三区换脸明星 | 99精品一区二区三区的区别| 精东粉嫩av免费一区二区三区| 九九热精品免费视频| 亚洲国语精品自产拍在线观看| 最新日韩精品| 中文字幕在线观看一区二区三区| 国产盗摄一区二区三区| 成人精品免费在线观看| 中文字幕日韩精品在线观看| 日本高清久久| 成人三级视频在线播放 | 中文字幕亚洲一区二区三区| 91麻豆精品国产综合久久久| av无码久久久久久不卡网站| 国产亚洲欧美一区在线观看| 国产女无套免费视频| 午夜精品久久久久久久白皮肤| 欧美日韩性在线观看| 欧美性猛交xx| 色视频欧美一区二区三区| 成人在线app| 欧美日韩无遮挡| 国产精品一色哟哟哟| 免费观看日批视频| 色综合男人天堂| 欧美裸体在线版观看完整版| 免费看三级黄色片| 在线视频一区二区三| 欧美家庭影院| 少妇免费毛片久久久久久久久| 国产99精品国产| 夜夜嗨av禁果av粉嫩avhd| 欧美性视频网站| 欧美xxx在线观看| 久久久精品成人|