4.popup.js。 popup.html引入的js。這裏我們用戶它的做的事是向content_scripts中發送一個消息。相當於發一個命令。告訴content script,去辦事吧。content_scripts的內容在後面,看完再回過來看一次這裏。
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {greeting: "hello"}, function(response) {
// console.log(response.farewell);
});
});
chrome.tabs.getSelected()這個函數能獲取到當前標籤的信息對象並傳遞給回調函數。
5.back.js。也是我們這個插件中的content script。
這個文件是我們插入到當前標籤頁中運行的代碼。它可以訪問標籤頁面中的dom節點。
我們這裏用它來是監聽消息,消息來了就運行設置標籤的函數。操作標籤頁中的dom節點。
對應配置文件中content_scripts下的back.js。
這個參數中的內容會被加載到當前打開的網頁中,可以訪問當前標籤頁的節點。
所以,我們對頁面的操作往往會寫在這個腳本里。有需要的話甚至可以加載個jQuery到裏面。
代碼:
function setA(){
var aDoms = document.getElementsByTagName('a');
var len = aDoms.length;
for (var i = 0; i < len; i++) {
aDoms[i].setAttribute("target","_blank")
}
}
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello"){
setA();
// sendResponse({farewell: "goodbye"});
}else{
// sendResponse({});
}
}
);
可能比較要注意的一點是popup.html與content_script之間的通信。
popup.html向標籤頁中的content_script發送消息。
content_script接收到消息,執行操作。
6.調試方式:
popup.html加載的js調試。
右鍵點擊插件圖標,選擇審查彈出內容。(或者在彈出框裏右鍵點擊檢查。)會彈出一個控制檯。
點source可以看到我們的html和js資源。