作为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 v68 +使用称为MailExtensions的新扩展标准,该标准基于WebExtensions标准,并且不再原生支持大多数旧API(包括gFolderDisplay
)。
由于我认为这是到2020年6月的过渡期,所以(新API尚未完全开发),与此同时,您可以使用WebExtension Experiments使用某些旧API。
我也面临同样的问题,但是我对Thunderbird extension development discussion收到了一些有用的答复。