Как иметь переменную в текущей вкладке для моего расширения Firefox? - PullRequest
0 голосов
/ 12 января 2019

Я разрабатываю свое первое расширение для Firefox и начинаю. У меня есть скрипт в фоновом режиме, который перехватывает событие onBeforeRequest. Я хотел бы сохранить временную переменную на вкладке, особенно чтобы увидеть, запустил ли я уже скрипт на текущей вкладке. моя переменная не постоянна.

Пример, но не работает.

browser.webRequest.onBeforeRequest.addListener(
   (request) => {
        if(browser.tabs.getCurrent().myvar != true ){
                execMyScript(request);
                browser.tabs.getCurrent().myvar = true;
        }
   }, {urls: ['http://*/*']},["blocking"]
 );

Спасибо

1 Ответ

0 голосов
/ 15 января 2019

Вы можете сохранить переменную на самом фоне.

 let tabsVisited = {};
 browser.webRequest.onBeforeRequest.addListener(
   (request) => {
        if(!(request.tabId in tabsVisited)){
                execMyScript(request);
                tabsVisited[request.tabId] = true;
        }
   }, {urls: ['http://*/*']},["blocking"]
 );

но tabsVisited будет только увеличиваться. вам нужно найти место в вашем скрипте до delete tabsVisited[request.tabId], когда вы закончите. возможно, когда пользователь закрывает вкладку.

...