无法为插件工具包API设置firefox书签说明

无法为插件工具包API设置firefox书签说明,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,我发现了nsINavBookmarksService,但是自从Firefox3以来,它似乎没有任何API方法来获取/设置书签描述 我看到其他附加组件将描述修改为一种同步数据存储方法(这正是我要做的)。我猜这可能是一个非壁虎标准的描述,这就是为什么它不被直接支持的原因,但是一定有一个完全不同的界面来操作我没有发现的书签 有人能帮你解决这个新手问题吗?从Firefox 3开始,书签已经被合并到包含你所有浏览历史的Places数据库中。因此,要获取书签,您需要进行历史查询,如下所示(第一行是您似乎正在

我发现了
nsINavBookmarksService
,但是自从Firefox3以来,它似乎没有任何API方法来获取/设置书签描述

我看到其他附加组件将描述修改为一种同步数据存储方法(这正是我要做的)。我猜这可能是一个非壁虎标准的描述,这就是为什么它不被直接支持的原因,但是一定有一个完全不同的界面来操作我没有发现的书签


有人能帮你解决这个新手问题吗?

从Firefox 3开始,书签已经被合并到包含你所有浏览历史的Places数据库中。因此,要获取书签,您需要进行历史查询,如下所示(第一行是您似乎正在使用的):

var{Cc,Ci}=require(“chrome”);
var historyService=Cc[“@mozilla.org/browser/nav history service;1”]
.getService(Ci.nsINavHistoryService);
var options=historyService.getNewQueryOptions();
var query=historyService.getNewQuery();
query.onlyBookmarked=true;
var result=historyService.executeQuery(查询,选项);
result.root.containerOpen=true;
对于(变量i=0;i
这与代码示例基本相同。当然,您的问题是无法像描述那样存储数据。但是,您可以设置注释,请参见。因此,如果您的书签已有
节点
变量:

var annotationName=“my.extension.example.com/bookmarksdescription”;
var ioService=Cc[“@mozilla.org/network/io-service;1”]
.getService(Ci.nsioservice);
var uri=ioService.newURI(node.uri,null,null);
var annotationService=Cc[“@mozilla.org/browser/annotationService;1”]
.getService(Ci.nsAnnotationService);
setPageAnnotation(uri、annotationName、,
“某些说明”,0,Ci.nsAnnotationService.EXPIRE\u NEVER);

供参考:

但是等一下,等一下。好的,对于这个问题,答案是注释,但是如果我真的想获取/设置书签中某个内容的描述呢?@pihentagy:您设置了
“bookmarkProperties/description”
注释,这显然是Places内部使用的注释。