chrome外掛篇:資源監控01
阿新 • • 發佈:2019-02-13
前言:
因一些需求,前陣子需要幫助某些同學,檢測網路請求並下載之。
身為一隻前端程式猿,首先想到的,就是開發chrome外掛。
BUT,旅途各種忐忑,木有中文api,官方缺少重要的例子,各種層次api的執行不正確 & 等等,等等~。
功能說明:
1、監控網路請求
2、下載(這部分以後再講
介面如下:
manifest.json講解:
1、background屬性:
{
......
"background": {
"scripts": ["background.js"]
}
......
}
background可以理解成外掛的後臺程式碼。 它指定的指令碼,執行在瀏覽器外掛的整個生命週期,只要外掛不被停用,或者解除安裝,就算我們沒有展開外掛的介面,它都在默默的執行。
{
......
"browser_action": {
......
"default_popup": "popup.html"
}
......
}
browser_action中,能指定外掛現在在工具欄的logo、title,而其中的“default_popup”屬性,則指定點選外掛logo後的彈出層介面(即上面那個截圖的彈出介面); popup.html可以通過
chrome.extension.sendMessage({your message object});
和
chrome.extension.onMessage.addListener(function(messageObject){ ... });
與後臺的 background.js進行通訊。
核心程式碼:
1、在background.js裡:
chrome.webRequest.onCompleted.addListener(function(details){
// 請求完畢,返回的相關資料,都在details中
// 拿到資料後,可以通過chrome.extension.sendMessage({msg:"getNetworkResource", data:details});將資料通知popup.html
},{urls: ["<all_urls>"]},["responseHeaders"]);
因為popup.html的資料,會在外掛介面收起的時候回收,所以,不合適進行網路監聽。
PS:最好就在background.js中,對請求回來的資料,進行快取
2、在popup.html中
呼叫剛剛介紹過的
chrome.extension.onMessage.addListener(function(data){
if(data && data.msg == "getNetworkResource"){
// 對返回的資料進行處理
}
});
參考文件: