我想编写一个chrome扩展程序,每次点击和页面加载后,它会自动检索页面地址并运行一个自动更改扩展图标的脚本。仅在单击扩展图标后,我的代码才会更改图标。如何在切换到网站后自动更改图标
的manifest.json
{
"manifest_version": 2,
"name" : "__MSG_extName__",
"default_locale" : "en",
"version": "1.0",
"permissions": [
"tabs"
],
"browser_action": {
"default_icon": "images/icon.png",
"default_popup": "index.html"
}
}
的script.js
chrome.tabs.query({'active': true, 'windowId': chrome.windows.WINDOW_ID_CURRENT},
function(tabs){
var url = tabs[0].url;
if (url.indexOf('mywebsite.com') !== -1){
chrome.browserAction.setIcon({path:"images/ok.png"});
}else{
chrome.browserAction.setIcon({path:"images/no.png"});
}
}
);
答案 0 :(得分:0)
如果您希望在页面位置更改时收到通知,则应该收听chrome.tabs.onUpdated
事件。
有关详细信息,请参阅Official Documentation,但想法是,听取该事件,并在触发时检查选项卡是否与您关注的选项卡(例如,活动选项卡)并查看是否已更改value是URL,如果是,请与mywebsite.com
进行比较。您的代码现在只运行查询时检查一次。
您的代码可能如下所示:
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
const newUrl = changeInfo.url;
if (newUrl) {
if (newUrl.indexOf('mywebsite.com') !== -1){
chrome.browserAction.setIcon({path:"images/ok.png"});
}else{
chrome.browserAction.setIcon({path:"images/no.png"});
}
}
});