如何在我的 Firefox 扩展的当前选项卡中有一个变量?

How to have a variable in the current tab for my Firefox extension?

我正在开发我的第一个 Firefox 扩展,我是一个初学者。 我在后台有一个脚本可以拦截 onBeforeRequest 事件。 我想在选项卡上存储一个临时变量,特别是查看我是否已经 运行 我的脚本在当前选项卡上。 我的变量不是持久的。

示例但不起作用。

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

谢谢

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

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