[英]Thunderbid extension: open eml file
我已經創建了執行以下操作的擴展程序:
當我使用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
類的watcher.openWindow
,但是具有給定的eml
文件。
有任何想法嗎?
您可以在MsgOpenFromFile
函數中看到此操作的完成方式,該函數在File / Open Saved Message菜單項中被調用。 基本上,您必須獲取eml
文件( 從文件路徑獲取nsIFile實例 ), 將其轉換為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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.