#javascript #google-chrome-extension
#javascript #google-chrome-extension
Вопрос:
У меня есть простое расширение Chrome, которое автоматически закрывает новые вкладки. Цель состоит в том, чтобы расширение включалось / выключалось нажатием на значок браузера. Я могу активировать его, однако я не могу отключить его. Вот что у меня есть на данный момент:
var enable=false;
chrome.browserAction.onClicked.addListener(function (tab) {
enable = enable ? false : true;
if(enable){
chrome.tabs.onCreated.addListener(function (tab) {
chrome.tabs.remove(tab.id);
});
chrome.browserAction.setIcon({path: 'on.png'});
}
else{
chrome.browserAction.setIcon({path: 'icon.png'});
// I'm not sure what to put here
}
});
У меня есть 2 разных изображения для представления состояния включения / выключения, которое работает нормально, однако прослушиватель остается активным. Я пробовал removeListener безрезультатно. Любая помощь была бы высоко оценена!
Ответ №1:
Вы должны использовать именованную функцию, чтобы использовать removeListener
:
function myListener(tab){
chrome.tabs.remove(tab.id);
}
var enable=false;
chrome.browserAction.onClicked.addListener(function (tab) {
enable = !enable;
if(enable){
chrome.tabs.onCreated.addListener(myListener);
chrome.browserAction.setIcon({path: 'on.png'});
}
else{
chrome.browserAction.setIcon({path: 'icon.png'});
chrome.tabs.onCreated.removeListener(myListener);
}
});