javascript - 如何访问正在撰写的电子邮件正文?

标签 javascript xul thunderbird thunderbird-addon

我在消息 Compose Toolbar Palette 中创建了一个工具栏按钮。

<toolbarpalette id="MsgComposeToolbarPalette">
  <toolbarbutton id="myextension-button1" class="toolbarbutton-1"
      label="Cryption_compose" tooltiptext="Encrypts or decrypts your email"
      oncommand="Cryption.open_options();" />
</toolbarpalette>

OnClick 会打开 options.xul,我在其中创建了一个 XUL 页面,当用户在文本框中输入文本时,该页面可以处理文本加密和解密。

现在我正在尝试的是,一旦用户撰写电子邮件并单击工具栏按钮,文本框就应该填充撰写的电子邮件文本。知道如何做到这一点吗?

最佳答案

如果您对某个 Thunderbird 窗口中的操作方式感兴趣,了解它在 XUL DOM 中的实现方式的方法是安装 add-on DOM Inspector并用它来调查 DOM 的内容是什么样的。您可能还想要 Element Inspector附加组件,它是对 DOM 检查器的一个非常有用的补充(shift-右键单击打开 DOM 检查器到单击的元素)。您可能还会发现 Stacked Inspector有帮助。

在这种情况下,使用 DOM Inspector 快速查看会发现编辑窗口是作为 HTML 文档实现的。 document位于元素 <editor id="content-frame"> 下.您将要访问和更改 <BODY> 的内容.您应该能够通过以下方式获取元素:

let messageBody = document.getElementById("content-frame").contentDocument.body;

如果还是不行,那么:

let editor = document.getElementById("content-frame");
let editorDocument = editor.contentDocument;
let messageBody = editorDocument.getElementsByTagName("body")[0];

不幸的是,我没有设置基本的 Thunderbird 附加框架,所以我无法为您测试这个,但第二个至少应该可以工作。

关于javascript - 如何访问正在撰写的电子邮件正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26059445/

相关文章:

spam-prevention - 导出 Thunderbird 自适应垃圾邮件过滤器数据

windows - 为什么 Thunderbird 通过 MAPI 发送邮件后总是立即返回?

Javascript 'in' 函数在控制台中抛出错误

javascript - 使用 JavaScript 通过自定义属性获取元素

css - 如何在 Firefox 中使用自定义滚动条?

firefox - XUL:点击自定义状态栏,如何隔离左右

php - IMAP/PHP 中的 Thunderbird "Tags"

Javascript循环获取选中复选框的名称

javascript - 检测 DIV 的 HTML 和 CSS 并进行更改以使其与同级 DIV 一起滚动

browser - 如何从 XUL 浏览器打开新窗口?