繁体   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