2014-09-26 113 views
1

我在消息撰写工具栏调色板中创建了一个工具栏按钮。如何访问正在撰写的电子邮件正文?

<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页面,当用户进入到文本框中,可以处理文本加密和解密。

现在我正在尝试的是,一旦用户编写电子邮件并点击工具栏按钮,文本框应该填充组成的电子邮件文本。任何想法如何做到这一点?

回答

1

当您对某个Thunderbird窗口中的某些操作感兴趣时,了解如何在XUL DOM中实现它的方法是安装add-onDOM Inspector并用它来调查DOM中的内容好像。您可能还需要,Element Inspector附加组件,它是DOM Inspector非常有用的附加组件(shift-right-click将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]; 

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

+0

好我明白你说的部分,但你可以expalin我如何实现它。你可以参考 http://stackoverflow.com/q/26406688/3656787 – Raveendra 2014-10-16 14:18:24