Я пишу расширение Firefox. Расширение должно изменить значок в зависимости от того, соответствует ли URL определенной строке, Google в этом случае. Поэтому для этого примера я хочу, чтобы значок стал красным, если URL-адрес совпадает при нажатии или обновлении вкладки. Тем не менее, у меня проблемы с тем, чтобы заставить его работать. Когда я нажимаю на новую вкладку, независимо от URL-адреса, он всегда будет красным значком, независимо от того, какой URL-адрес. Когда я обновляю вкладку, не имеет значения, что это за URL, он всегда будет черным. Заранее извиняюсь, если я совершаю простую или глупую ошибку, я не программист.
background.js выглядит следующим образом;
var alertError = function(arg){
if(arg.url.match(/https:\/\/google\.com\/*/) == null){
alert('Something');
}
};
browser.browserAction.onClicked.addListener(alertError);
browser.tabs.onActivated.addListener(function(info){
browser.tabs.get(info.tabId, function(change){
if(change.url == undefined){
browser.browserAction.setPopup({tabId: info.tabId, popup: ''});
browser.browserAction.setIcon({path: '../icons/class/icon-red.png', tabId: info.tabId});
console.log('undefined');
}
else if(change.url.match(/https:\/\/google\.com\/*/) == null){
browser.browserAction.setPopup({tabId: info.tabId, popup: ''});
browser.browserAction.setIcon({path: '../icons/class/icon-red.png', tabId: info.tabId});
console.log('not matching');
}
else{
browser.browserAction.setPopup({tabId: info.tabId, popup: '../html/popup.html'});
browser.browserAction.setIcon({path: '../icons/class/icon-black.png', tabId: info.tabId});
console.log('matched');
}
});
});
browser.tabs.onUpdated.addListener(function (tabId, change, tab){
if(tab.url == undefined){
return;
}
else if(tab.url.match(/https:\/\/google\.com\/*/) == null){
browser.browserAction.setPopup({tabId: tabId, popup: ''});
browser.browserAction.setIcon({path: '../icons/class/icon-red.png', tabId: tabId});
console.log('not matching');
}
else{
browser.browserAction.setPopup({tabId: tabId, popup: '../html/popup.html'});
browser.browserAction.setIcon({path: '../icons/class/icon-black.png', tabId: tabId});
bconsole.log('matched');
}
});