我已经创建了一个执行以下操作的扩展程序:
当我使用命令行thunderbird -MyCustomParam1 "12345"
运行Thinderbird时,我的扩展程序将打开一个撰写窗口并将参数"12345"
添加到窗口。
我使用的一些代码:
// In the calling code
var args = {
param1: 12345,
};
args.wrappedJSObject = args;
var watcher = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
.getService(Components.interfaces.nsIWindowWatcher);
watcher.openWindow(null, url, windowName, features, args);
// In the window code
var args = window.arguments[0].wrappedJSObject;
当然使用正确的网址和功能。
现在我想做同样的事情,但是对于消息窗口和选择的eml
文件。
您可以从命令行打开eml
文件,如下所示:Thunderbird test.eml
(这将在新窗口中打开邮件)。
我想要的是以下内容:
Thunderbird test.eml -MycustomParam1 "1234"
应该打开邮件,并将参数"1234"
添加到屏幕,这样我就可以在文档窗口中访问它,就像示例1一样。
所以基本上我想要watcher.openWindow
之类的内容,但需要一个给定的eml
文件。
有什么想法吗?
答案 0 :(得分:0)
您可以在MsgOpenFromFile
function中看到这是如何完成的,正在调用File / Open Saved Message菜单项。您基本上必须使用eml
文件(get an nsIFile instance from file path),turn it into a URI,然后在打开消息窗口之前更改查询字符串:
uri.QueryInterface(Components.interfaces.nsIURL);
uri.query = "type=application/x-message-display";
watcher.openWindow(null, "chrome://messenger/content/messageWindow.xul", "_blank",
"all,chrome,dialog=no,status,toolbar", uri);