如何编写一个Thunderbird扩展(webextension)来修改消息显示?

han*_*dle 5 javascript thunderbird thunderbird-webextensions

我想为 Thunderbird 编写一个扩展来修改消息显示(例如插入/替换文本/标记/图像)。
不幸的是,缺少文档(由于最近的更改?)。

可以在以下位置找到一些示例

基于https://github.com/thundernest/sample-extensions/tree/master/messageDisplay

我已经修改了background.js

browser.messageDisplay.onMessageDisplayed.addListener((tabId, message) => {
  console.log(`Message displayed in tab ${tabId}: ${message.subject}`);
  console.log(message.id);
  browser.messages.getFull(message.id).then((messagepart) => {
      console.log(messagepart);
      body = messagepart['parts'][0]['parts'][0]['body'];
      console.log(body);
      body += "modified!";
      console.log(body);
  });
  browser.windows.getCurrent().then((window)=>{
    console.log(window.type);
  });

  browser.tabs.getCurrent().then((tab)=>{
    console.log("tab",tab);
  });
});
Run Code Online (Sandbox Code Playgroud)

这为我提供了消息正文(使用魔术索引),但预计更改不会反映在消息显示中。
返回的窗口类型是normal,不是messageDisplay
tabundefined,尽管添加权限

  "permissions": [
    "messagesRead",
    "activeTab",
    "tabs",
    "tabHide"
  ],
Run Code Online (Sandbox Code Playgroud)

但我认为这是因为脚本以background.

所以我需要一个在内容上运行的脚本/对选项卡的访问,然后是一些关于如何修改显示的消息内容的提示(我不想修改消息)。

我在哪里可以找到等效的文档

特定于雷鸟?


content_scripts在 manifest.json 中指定会导致“错误:错误重新加载插件 messageDisplay@sample.extensions.thunderbird.net:未定义”。

executeScript()frombackground似乎也不起作用,即使指定了 tabId。

小智 0

文档https://thunderbird-webextensions.readthedocs.io/en/68/tabs.html#getcurrent 说:

如果从非选项卡上下文(例如:背景页面或弹出视图)调用,则可能是未定义的。

由于不是从选项卡上下文调用background.js,因此选项卡未定义。