簡體   English   中英

Thunderbird擴展-如何在Javascript中使用相對路徑?

[英]Thunderbird extension - How to use relative paths with Javascript?

我正在開發自己的Thunderbird擴展。 該擴展將.xml文件添加為Thunderbird郵件的附件(效果很好)。 我唯一的問題是我不知道如何使用相對路徑。

看起來像這樣:

var file= 'C:\\...[… \\…]...\\chrome\\VHitG2.xml';
var attachments = [];
    attachments.push(FileToAttachment(file));
    AddAttachments(attachments); 

如果擴展安裝在其他路徑中,則該擴展將無法工作。
能源部的任何人都知道如何使用相對路徑嗎?

FileToAttachment()函數並不神奇,實際上非常簡單 我假設您正在談論的是擴展名中的靜態文件-應該可以通過chrome://myextension/content/VHitG2.xml這樣的URL訪問該chrome://myextension/content/VHitG2.xml 然后,您可以使用該URL自己簡單地創建一個nsIMsgAttachment實例:

var attachment = Components.classes["@mozilla.org/messengercompose/attachment;1"]
                           .createInstance(Components.interfaces.nsIMsgAttachment);
attachment.url = "chrome://myextension/content/VHitG2.xml";
AddAttachments([attachment]);

請注意,無需為此擴展程序安裝擴展程序,也不需要磁盤上的實際文件。

我使用了一種非常circuit回的方式來獲取擴展文件的URL:

Components.utils.import("resource://gre/modules/FileUtils.jsm");
var test1 = FileUtils.getFile("CurProcD", ["VHitG2.xml"]);
var test2 = FileUtils.getFile("CurProcD", ["VHitG.xml"]);
var file1 = test1.path.replace(/VHitG2.xml/i, "extensions\\custom-toolbar-button@example.com\\chrome\\VHitG2.xml");
var file2 = test2.path.replace(/VHitG.xml/i, "extensions\\custom-toolbar-button@example.com\\chrome\\VHitG.xml");
var attachment1 = file1.replace(/\\/g, "\\\\");
var attachment2 = file2.replace(/\\/g, "\\\\");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM