Расширение Firefox: обновление значка браузера в background.js - PullRequest
1 голос
/ 25 октября 2019

Я пишу расширение 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');
    }
});

...