顧名思義悍缠,chrome擴展,就是chrome瀏覽器的擴展耐量。
chrome擴展飞蚓,是使用chrome本身api開發(fā)的工具。
chrome插件廊蜒,我沒記錯的話是基于webkit內核NPAPI (新版本是PPAPI)開發(fā)出來的工具玷坠。
本質上二者好像就不一樣。
先來BB一下大體構成劲藐。后面詳細。
manifest.json 個人理解嘛樟凄,這玩意兒就和package.json差不多聘芜,就是配置文件。后面BB這個的api缝龄。
background 這個東西汰现,就是和chrome打交道的了。叫后臺頁面叔壤。就是告訴chrome你是要干啥瞎饲,你是要持續(xù)運行的后臺頁面呢,還是就是一個單純的事件頁面呢炼绘。
popup 如果你需要操作這個拓展程序嗅战,那就需要這個東西了。這個是一個純
web
頁面俺亮。-
Content scripts -- 內容腳本驮捍,就是連接background和popup的媒介。
popup告訴內容腳本要干啥脚曾。內容腳本讓background去干啥东且。
manifest的api
來了(沒錯,就是mani本讥,不是main)
{
//必須得有的
"manifest_version" : 2, //這里 是且只能是2 api里只有2珊泳,姑且這么認為
"name" : "nicaicai", //就是你這個chrome拓展叫啥
"version" : "1.0.0", //你這個拓展的版本
//最好是有的
"default_locale" : "zh_CN", //這個拓展是給哪國人看的
"description" : "介紹一下這個拓展是干啥的",
//愛有沒有鲁冯,有就有一個
"browser_action":{
//擴展再瀏覽器右上角那個小圖標
"default_icon": "img/icon.png",
// 鼠標在圖標懸停時的標題,想要就要色查,不想要就拉倒
"default_title": "什么玩意兒的擴展",
//這個擴展的首頁薯演,根據目錄結構來。
"default_popup": "popup.html"
},
//下面這個和上面最好活一個综慎,不要都活下來
"page_action":{
"default_icon": "img/icon.png",
"default_title": "愛啥啥",
"default_popup": "popup.html"
},
//下面這些就隨意發(fā)揮了
"action" : "我不知道是干啥的",
"author" : "誰干的(肯定句)",
"automation" : "上一句的上一句",
//敲黑板涣仿。這個是長駐在后臺執(zhí)行的東西
"background" : {
// 用js的形式,會自動生成一個后臺頁面
"scripts": [
"js/background.js"http://目錄就是上面的那個background.js在你本地項目里的目錄地址
]
//或者示惊,二者活一個
"page": "background.html"
},
// 需要直接注入頁面的JS
"content_scripts":
[
{
//"matches": ["http://*/*", "https://*/*"],
// "<all_urls>" 表示匹配所有地址
//下面這種寫法也可以好港,matches后面是數(shù)組或者string就可以
// "http://*/",
// "https://*/",
// "http://*/*",
// "https://*/*"
"matches": ["<all_urls>"],
// 如果有好幾個js的話,就按順序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// js如果沒有啥依賴的米罚,可以隨便順序
// css最好按照順序來钧汹,免得覆蓋
"css": ["css/index.css"],
// 代碼注入的時間,可設置的值: "document_start", "document_end", or "document_idle"录择,最后一個表示頁面空閑時拔莱,默認document_idle
"run_at": "document_start"
}
],
//再敲一次黑板,如果你要用chromeAPI中的一些東西隘竭,要在這里列出來你要用的‘權限’塘秦。可以使用的有很多动看,不一一舉例了尊剔。
"permissions" : [
"contextMenus", // 右鍵菜單
"tabs", // 標簽
"http://*/*",
"https://*/*"
]
}
以上這些,基本上夠用0.0 如果有特殊需求菱皆,可以自己找api里你需要的须误。英語不好,有些不知道怎么解釋仇轻。
都是授予對chrome.xxx
api的擴展訪問權限
咳咳京痢。大體api說一下,下面再BB點我覺得有用的篷店。祭椰。。船庇。
開發(fā)過程中吭产,在background.js
頁面里,可以使用一些chrome.xx.xx
這種語法來綁定相關事件
// 接收消息
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.result) {
sendResponse({
farewell: "ok"
});
}
localStorage.setItem("key", request.msg);
});
"scripts": ["js/background.js"]
這里就是接受信息的js鸭轮。
在content 頁面里
// 發(fā)送消息
chrome.runtime.sendMessage(
{
msg: '從 Content Script 向 事件頁面 傳遞消息',
result: 1
},
function(response) {
if (response && response.msg) {
console.log(response.msg);
}
}
);
這個js
文件相當于是入口js文件臣淤,要在你的"default_popup": "popup.html"
這里對應的html中引入。
以上就是大體操作窃爷,總之邑蒋,用到chromeAPI里的姓蜂,需要傳遞的就要在內容頁面里發(fā)送,在持續(xù)在后臺執(zhí)行的js中接受医吊。這樣才能實時滿足你钱慢。
那么,開發(fā)完了卿堂,如果想讓更多人使用要怎么做呢束莫?
登錄到 Chrome 開發(fā)者信息中心,以便你可以發(fā)布到Chrome應用商店草描。
首先览绿,你需要有一個 Google 帳號,去注冊一個穗慕。
然后打包成*.zip饿敲,上傳上去。
但是逛绵,這個上傳是需要收費的怀各。。术浪。
chrome會索要 5刀
的開發(fā)者注冊費用瓢对,給錢之后,你可以上傳20個擴展了胰苏。沥曹。
PS:貌似得用visa卡才能支付
如果只是小范圍內使用,可以直接打包發(fā)送出去碟联,使用者添加到chrome擴展就好了。
本文僅供學習筆記使用僵腺。鲤孵。。無抄襲之意辰如、普监、、歡迎糾錯琉兜。凯正。。
補一句豌蟋,開發(fā)過程中修改
background
和content Script
的時候廊散,要移除擴展再次添加,才有效梧疲,類似于popup
頁面的css允睹、js运准,刷新就有效。