gFolderDisplay和其他在Thunderbird后台脚本中未定义的内置全局变量

问题描述 投票:1回答:1

作为Thunderbird WebExtension的第一步,我试图在控制台窗口中发布选定邮件的数量。为此,我在主窗口中使用一个按钮,一旦按下该按钮,就会在后台脚本中调用一个函数,该脚本应发布一条消息,显示所选邮件的数量。但似乎全局gFolderDisplay.selectedCount在后台脚本中无法识别。而且browser.gFolderDisplay.selectedCount不起作用。在Thunderbird暂存器中执行时,相同的代码可以完美工作。为什么代码只能在暂存器中运行,而不能在后台脚本中运行?他们不是在同一环境下工作吗?

我知道该按钮正在工作,因为例如,如果按下该按钮,则可以打开另一个选项卡。代码行console.log(“ Selected Mails:” + gFolderDisplay.selectedCount);可以在暂存器中正常工作,但不能在后台脚本中工作。

我的background.js:

function test_some_stuff() {
    console.log("Selected Mails:" + gFolderDisplay.selectedCount);
}

browser.browserAction.onClicked.addListener(test_some_stuff);

我的manifest.json:

{

  "description": "Demonstrating toolbar buttons",
  "manifest_version": 2,
  "name": "button-demo",
  "version": "1.0",

  "background": {
    "scripts": ["background.js"]
  },

  "browser_action": {
    "default_icon": {
       "16": "icons/page-16.png",
       "32": "icons/page-32.png"
    }
  },

  "permissions": [
      "*://developer.mozilla.org/*",
      "webRequest",
      "accountsRead",
      "accountsFolders",
      "messagesRead",
      "messagesMove",
      "webNavigation"
  ]

}
thunderbird
1个回答
0
投票

[Thunderbird v68 +使用称为MailExtensions的新扩展标准,该标准基于WebExtensions标准,并且不再原生支持大多数旧API(包括gFolderDisplay)。

由于我认为这是到2020年6月的过渡期,所以(新API尚未完全开发),与此同时,您可以使用WebExtension Experiments使用某些旧API。

我也面临同样的问题,但是我对Thunderbird extension development discussion收到了一些有用的答复。

© www.soinside.com 2019 - 2024. All rights reserved.