如何在Firefox扩展的当前选项卡中包含变量?

时间:2019-01-11 21:54:53

标签: firefox-webextensions

我正在开发我的第一个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 :(得分:0)

您可以将变量保存在后台本身。

 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]的位置。也许当用户关闭标签页时。