【问题标题】:How to access the body of the email message being composed?如何访问正在撰写的电子邮件的正文?
【发布时间】:2023-03-26 07:13:02
【问题描述】:

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

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

【问题讨论】:

    标签: javascript xul thunderbird thunderbird-addon


    【解决方案1】:

    如果您对如何在其中一个 Thunderbird 窗口中完成某项操作感兴趣,弄清楚它是如何在 XUL DOM 中实现的方法是安装 add-on DOM Inspector 并使用它来调查内容DOM 的样子。您可能还需要 Element Inspector 附加组件,它是 DOM 检查器的一个非常有用的补充(shift-right-click 将 DOM 检查器打开到单击的元素)。您可能还会发现 Stacked Inspector 很有帮助。

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

    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 附加框架,所以我无法为您测试,但至少第二个应该可以工作。

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 2020-10-06
      • 1970-01-01
      相关资源
      最近更新 更多