Firefox addon 修改Firefox下载列表的API
我想写一个小的firefox插件,它可以检测何时本地删除(或已经删除)下载的文件,并删除firefox下载列表中的相应条目Firefox addon 修改Firefox下载列表的API,firefox-addon,Firefox Addon,我想写一个小的firefox插件,它可以检测何时本地删除(或已经删除)下载的文件,并删除firefox下载列表中的相应条目 有人能告诉我相关的api来操作下载列表吗?我似乎找不到它。相关的API是PlacesUtils,它抽象了Places数据库的复杂性 如果您的代码在chrome窗口的上下文中运行,那么您将免费获得一个PlacesUtilsglabal变量。否则(引导、附加SDK等等),您必须导入PlacesUtils.jsm Cu.import(“resource://gre/modules
有人能告诉我相关的api来操作下载列表吗?我似乎找不到它。相关的API是
PlacesUtils
,它抽象了Places
数据库的复杂性
如果您的代码在chrome窗口的上下文中运行,那么您将免费获得一个PlacesUtils
glabal变量。否则(引导、附加SDK等等),您必须导入PlacesUtils.jsm
Cu.import(“resource://gre/modules/PlacesUtils.jsm");
就Places
而言,下载的文件只不过是一种特殊的访问页面,并进行了相应的注释。只需一行代码就可以获得所有下载文件的数组
var results=PlacesUtils.annotations.getAnnotationsWithName(“下载/目的地配置”);
由于我们要求提供destinationflueri
注释,因此resultarray
的每个元素都将annotationValue
属性中的下载位置作为文件:
URI规范字符串保存
这样,您就可以检查文件是否确实存在
函数getFileFromURIspec(fileurispec){
//如果服务在您的上下文中不可用,则Cu.import(“resource://gre/modules/Services.jsm");
var filehandler=Services.io.getProtocolHandler(“文件”).QueryInterface(Ci.nsIFileProtocolHandler);
试一试{
返回filehandler.getFileFromURLSpec(FileUrSpec);
}
捕获(e){
返回null;
}
}
getFileFromURIspec
将返回nsIFile的实例,如果规范无效,则返回null,在本例中不应出现这种情况,但健全性检查不会有任何影响。这样,您可以调用exists()
方法,如果它返回false
,则Places
中的关联页面条目可以删除。我们可以通过页面的uri来判断哪个页面是该页面,uri也是结果的每个元素的一个属性
PlacesUtils.bhistory.removePage(result.uri);
总而言之
var results=PlacesUtils.annotations.getAnnotationsWithName(“下载/目的地配置”);
results.forEach(函数(结果){
var file=getFileFromURIspec(result.annotationValue);
如果(!文件){
//我不知道你该怎么处理这个案子
//询问用户,只是记录,删除,一些组合?
}
否则,如果(!file.exists()){
PlacesUtils.bhistory.removePage(result.uri);
}
});
相关的API是PlacesUtils
,它抽象了Places
数据库的复杂性
如果您的代码在chrome窗口的上下文中运行,那么您将免费获得一个PlacesUtils
glabal变量。否则(引导、附加SDK等等),您必须导入PlacesUtils.jsm
Cu.import(“resource://gre/modules/PlacesUtils.jsm");
就Places
而言,下载的文件只不过是一种特殊的访问页面,并进行了相应的注释。只需一行代码就可以获得所有下载文件的数组
var results=PlacesUtils.annotations.getAnnotationsWithName(“下载/目的地配置”);
由于我们要求提供destinationflueri
注释,因此resultarray
的每个元素都将annotationValue
属性中的下载位置作为文件:
URI规范字符串保存
这样,您就可以检查文件是否确实存在
函数getFileFromURIspec(fileurispec){
//如果服务在您的上下文中不可用,则Cu.import(“resource://gre/modules/Services.jsm");
var filehandler=Services.io.getProtocolHandler(“文件”).QueryInterface(Ci.nsIFileProtocolHandler);
试一试{
返回filehandler.getFileFromURLSpec(FileUrSpec);
}
捕获(e){
返回null;
}
}
getFileFromURIspec
将返回nsIFile的实例,如果规范无效,则返回null,在本例中不应出现这种情况,但健全性检查不会有任何影响。这样,您可以调用exists()
方法,如果它返回false
,则Places
中的关联页面条目可以删除。我们可以通过页面的uri来判断哪个页面是该页面,uri也是结果的每个元素的一个属性
PlacesUtils.bhistory.removePage(result.uri);
总而言之
var results=PlacesUtils.annotations.getAnnotationsWithName(“下载/目的地配置”);
results.forEach(函数(结果){
var file=getFileFromURIspec(result.annotationValue);
如果(!文件){
//我不知道你该怎么处理这个案子
//询问用户,只是记录,删除,一些组合?
}
否则,如果(!file.exists()){
PlacesUtils.bhistory.removePage(result.uri);
}
});
相关的API是PlacesUtils
,它抽象了Places
数据库的复杂性
如果您的代码在chrome窗口的上下文中运行,那么您将免费获得一个PlacesUtils
glabal变量。否则(引导、附加SDK等等),您必须导入PlacesUtils.jsm
Cu.import(“resource://gre/modules/PlacesUtils.jsm");
就Places
而言,下载的文件只不过是一种特殊的访问页面,并进行了相应的注释。只需一行代码就可以获得所有下载文件的数组
var results=PlacesUtils.annotations.getAnnotationsWithName(“下载/目的地配置”);
由于我们要求提供destinationflueri
注释,因此resultarray
的每个元素都将annotationValue
属性中的下载位置作为文件保存