2011-06-03 95 views

回答

1

在你的背景頁面只需註冊標籤更新通知:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) 
{ 
    if (changeInfo.status == "loading") 
    { 
     var url = tab.url; 
     var iconPath = ??? 
     chrome.pageAction.setIcon({tabId: tabId, path: iconPath}); 
    } 
}); 

該處理器將被稱爲每當一個標籤改變位置。您無需關心當前選擇哪個選項卡,因爲您將爲每個選項卡定義不同的圖標。不過,如果你想這樣做 - http://code.google.com/chrome/extensions/tabs.html#event-onSelectionChanged是要走的路。

2

我想我已經想出了這一個。你需要兩個聽衆。一個用於檢測標籤何時被更改,另一個用於檢測標籤何時被更新。然後他們都可以觸發同樣的功能。這裏是什麼在後臺文件...

function changeIcon() { 
    //query the information on the active tab 
    chrome.tabs.query({active: true}, function(tab){ 
     //pull the url from that information 
     var url=tab[0].url; 
     //do whatever you need to do with the URL 
     //alert(url); 
     //change the icon 
     chrome.browserAction.setIcon({path: 'pathToIcon'}); 
    }); 
} 

//listen for new tab to be activated 
chrome.tabs.onActivated.addListener(function(activeInfo) { 
    changeIcon(); 
}); 

//listen for current tab to be changed 
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { 
    changeIcon(); 
}); 
相關問題