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

时间:2014-09-26 12:20:09

标签: 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页面,当用户在文本框中输入文本时,该页面可以处理文本加密和解密。

现在我正在尝试的是,一旦用户编写电子邮件并点击工具栏按钮,文本框就会填充组合的电子邮件文本。知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

如果您对某个Thunderbird窗口中的某些内容感兴趣,那么弄清楚如何在XUL DOM中实现它的方法是安装add-on DOM Inspector并将其用于调查DOM的内容是什么样的。您可能还需要Element Inspector附加组件,它是DOM Inspector的一个非常有用的附加功能(右键单击右键可以打开DOM Inspector到单击的元素)。您可能还会发现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附加框架,所以我无法为你测试这个,但第二个至少应该可以工作。

答案 1 :(得分:1)

要访问撰写编辑器,您需要在“content-frame”元素上调用getEditor()方法: https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/editor