javascript – Mozilla(Firefox,Thunderbird)扩展:如何获取扩展ID(来自install.rdf)?
作者:互联网
如果您正在为其中一个mozilla应用程序(例如Firefox,Thunderbird等)开发扩展,则在install.rdf中定义扩展ID.
如果由于某种原因您需要知道扩展ID,例如要在本地文件系统(1)中检索扩展名dir,或者如果要将其发送到webservice(useage统计信息)等,最好从install.rdf中获取它,以便在javascript代码中对其进行硬编码.
但是如何从我的扩展程序中访问扩展程序ID?
1)示例代码:
var extId = "myspecialthunderbirdextid@mydomain.com";
var filename = "install.rdf";
var file = extManager.getInstallLocation(extId).getItemFile(extId, filename);
var fullPathToFile = file.path;
最佳答案:
我很确定“硬编码ID”在扩展的整个生命周期内都不会改变.这就是ID的全部目的:它永久地是该扩展所独有的.只需将其存储为常量并在库中使用该常量.这没什么不对.
什么是不好的做法是使用install.rdf,其存在的唯一目的是……好吧,安装.开发扩展后,install.rdf文件的状态无关紧要,并且可能不一致.
“安装清单是启用加载项管理器的XUL应用程序用于确定加载项的信息的文件”[1]
举一个类比,就像从溢出中访问已删除对象的内存一样.该对象仍然存在于内存中,但它在逻辑上并不具有更长的相关性,并且使用其数据是一个非常非常糟糕的想法.
[1] https://developer.mozilla.org/en/install_manifests
标签:javascript,firefox,firefox-addon,thunderbird,thunderbird-addon 来源: https://codeday.me/bug/20190515/1109388.html